ABAQUS UEL二次开发(关于UEL动力隐式计算部分的程序讲解)

概述:帖子主要关注ABAQUS UEL二次开发,详解CPS4单元的实现过程,并且讲解C3D8单元(未进行B-BAR修正)的详细实现过程。编写的UEL程序包含动力隐式计算部分。UEL的静力计算部分,可以直接照搬有限元书本的理论即可,但是在进行动力隐式部分的UEL开发的时候,要按照ABAQUS官方文档里面给出的要求向ABAQUS主程序输出相应的矩阵,这些矩阵依据参数LFLAGS的不同而对K、M和C矩阵进行组装处理。

关于abaqus uel二次开发,涉及到动力隐式计算部分的资料很少,市面上的资料多是编写到静力计算部分就停止了,大0部分都是只计算了刚度和RHS,而本人又对动力时程计算有需求,因此对动力计算的相关内容进行了探索。

经测试,在开发具有动力计算功能的用户自定义单元的时候,均涉及到向ABAQUS主程序输出动力计算关键矩阵的工作。而且这部分工作对大部分用户自定义单元是通用的,即可以直接移植这部分代码;反之,缺少了这部分内容,编写的UEL程序则只能进行静力计算,即只能使用static,generally等少量的几个分析方式。

(一)线性平面应力四节点等参公式

(1)等参坐标变换

ABAQUS UEL二次开发(关于UEL动力隐式计算部分的程序讲解)的图1

(2)应变矩阵B

ABAQUS UEL二次开发(关于UEL动力隐式计算部分的程序讲解)的图2

(3)Jocabin矩阵

ABAQUS UEL二次开发(关于UEL动力隐式计算部分的程序讲解)的图3

(4)刚度阵、质量阵与高斯积分

这部分在所有的数值积分书籍里面均可以找到,这里只贴出来公式。

ABAQUS UEL二次开发(关于UEL动力隐式计算部分的程序讲解)的图4

经测试,发现ABAQUS在cps4单元中的质量矩阵为集中质量矩阵,个人在UEL中先是计算了协调质量矩阵(一致质量矩阵),然后将协调质量矩阵每一行的质量集中到了主对角元上,这种处理方法的计算结果最终与ABAQUS吻合良好。

(5)阻尼矩阵

阻尼矩阵采用了瑞丽阻尼,即刚度和质量的线性组合。

C=alpha*K+beta*M

(二)UEL二次开发介绍

(1)接口介绍

UEL接口参数众多,包括自己本身的参数和与其他子程序联合的参数,下面介绍我比较熟悉的参数。

《《需要编程定义的参数》》

RHS(right hand side),这个命名是从方程组的角度来的,顾名思义,他就是方程的右端量,其本质是:外力-内力,外力部分程序的编写涉及到与其他子程序的联合使用,包括dload和utracload等等,这部分内容是给用户自定义单元施加复杂的广义力,UEL接口为其提供了相应的参数,如jdltpy、ndload等等,目前没有做过尝试。至于内力的求解,数值上等于-ku,即刚度与位移乘积负数。这个数据需要我们必须编程更新。

AMATRX,这个参数往往被认为是刚度和质量,但并不这样,他只有在静力计算的时候才是刚度或者质量。他的具体取值依据分析类型的不同而不同,具体的表达形式不唯一。这个数据需要我们必须编程更新。

SVARS,这个参数官方文档说是取决于结果的状态量,他的具体意义和数据由我们自己确定,而我把它理解为一个小仓库,可以存放我们的数据。需要注意的是里面的数据可以在不同的增量步之间传输,就是说,里面的数据会传到下一个增量步,只要不更新他,他可以一直被使用。这个数据我们自己决定更新与否。

ENERGY,与用户自定义单元相关的一些动量等能量,也是依据不同的分析类型而不同。

《《可以被编程更新的参数》》

PNEWDT,这个参数可以用来修改当前增量步长,

NDOFEL,单元的自由度数目,如平面四节点单元,自由度为8。这个参数是主程序传给我们用于计算的,我们直接使用,不更新。

NRHS,荷载向量的数目,对一般的分析,数值位移,对特殊的分析类型,数值具体而定。

PROPS包含inp文件中定义的浮点数组,这些数据需要我们提前在inp文件中定义好,然后在UEL是使用,他的大小为nprops。与之对应的一组参数为jprops和njprop,这一组参数描述整型数据。

CROODSMCRDNNODE描述单元的坐标等信息,croos储存单元的初始坐标,mcrd可简单的理解为单元节点的自由度数目,nnode为单元的节点总数。

UDUVA,这一系列参数是ABAQUS对当前增量步结束时候的估计。

TIME(1)为当前分析步时间,TIME(2)为计算总时间。DTIME为时间增量步长。

KSTEPKINC分别为当前分析步和增量步个数。

JELEM为用户自定义单元编号。

(2)INP文件修改

(三)UEL程序整体设计

UEL整体设计采用常刚度迭代,即只在第一个增量步计算分析使用的刚度矩阵和质量矩阵,并储存在变量中,其余的增量步均直接读取储存的数据,并通过刚度矩阵和质量矩阵形成阻尼矩阵用于动力计算,在所有的增量步中均需向ABAQUS主程序输出计算用的关键矩阵。

ABAQUS UEL二次开发(关于UEL动力隐式计算部分的程序讲解)的图5

据上述流程图编写的主程序为:


      SUBROUTINE UEL(RHS,AMATRX,SVARS,ENERGY,NDOFEL,NRHS,NSVARS,
     1 PROPS,NPROPS,COORDS,MCRD,NNODE,U,DU,V,A,JTYPE,TIME,DTIME,
     2 KSTEP,KINC,JELEM,PARAMS,NDLOAD,JDLTYP,ADLMAG,PREDEF,NPREDF,
     3 LFLAGS,MLVARX,DDLMAG,MDLOAD,PNEWDT,JPROPS,NJPROP,PERIOD)
C
      INCLUDE 'ABA_PARAM.INC'
C
      DIMENSION RHS(MLVARX,*),AMATRX(NDOFEL,NDOFEL),PROPS(*),
     1 SVARS(*),ENERGY(8),COORDS(MCRD,NNODE),U(NDOFEL),
     2 DU(MLVARX,*),V(NDOFEL),A(NDOFEL),TIME(2),PARAMS(*),
     3 JDLTYP(MDLOAD,*),ADLMAG(MDLOAD,*),DDLMAG(MDLOAD,*),
     4 PREDEF(2,NPREDF,NNODE),LFLAGS(*),JPROPS(*)

      double precision DMATX(3,3)
      double precision KK(2*nnode,2*nnode),MM(2*nnode,2*nnode)
    
      KK=0.D0    
      MM=0.D0        
      
!     Print work state on screen and ANA_STAT.txt
      CALL PRINTSTATE(JPROPS,LFLAGS,DTIME,JELEM)  

      IF(KSTEP.EQ.1.AND.KINC.EQ.1) THEN            

! material martix      
        CALL DMATERIAL(DMatx,PROPS)     
      
! stiffness martix      
        call KKmartix(KK,coords,DMatx,mcrd,nnode,jelem)   
       
! mass martix          
        call MMmartix(MM,coords,props,mcrd,nnode,jelem,dmatx)
        
!       Store pre-calculated stiff/mass matrices
        CALL STOREMATRICES (SVARS,NSVARS,KK,MM,NDOFEL)

      else
      
        CALL READMATRICES(SVARS,NSVARS,KK,MM,NDOFEL)
      endif  
         
!     Output required variables 
      CALL OUTPUTVARIABLE(RHS,AMATRX,SVARS,PROPS,ENERGY,U,V,A,
     1 LFLAGS,DTIME,NDOFEL,NRHS,NSVARS,MLVARX,JELEM,PARAMS,KK,MM)

       
      
      RETURN
      END

涉及到的主要子程序有:

!!!!!!!!!!!!!!!!!!!!!

!     Output required matrix and array
      SUBROUTINE OUTPUTVARIABLE(RHS,AMATRX,SVARS,PROPS,ENERGY,U,V,A,
     1 LFLAGS,DTIME,NDOFEL,NRHS,NSVARS,MLVARX,JELEM,PARAMS,KK,MM)

!!!!!!!!!!!!!!!!!!!!!

!     Store stiff/mass matrices
      SUBROUTINE STOREMATRICES(SVARS, NSVARS, KK, MM, NDOFEL)

!!!!!!!!!!!!!!!!!!!!!

!     Read stiff/mass matrices      
      SUBROUTINE READMATRICES(SVARS, NSVARS, KK, MM, NDOFEL)

!!!!!!!!!!!!!!!!!!!!!

!    cal mass martix
      subroutine MMmartix(MM,coords,props,mcrd,nnode,jelem,dmatx)

!!!!!!!!!!!!!!!!!!!!!

!处理协调质量阵  

 subroutine ConMass(MM,nnode)

!!!!!!!!!!!!!!!!!!!!!

!cal shapefunction NN
      subroutine CalNN(NN,kesai,eta)

!!!!!!!!!!!!!!!!!!!!!

   SUBROUTINE DMATERIAL(DMatx,PROPS)   

!!!!!!!!!!!!!!!!!!!!!

   subroutine KKmartix(KK,coords,DMatx,mcrd,nnode,jelem)   

!!!!!!!!!!!!!!!!!!!!!

   SUBROUTINE CalBJ(B,J,detJ,kesai,eta,mcrd,nnode,jelem,coords)

!!!!!!!!!!!!!!!!!!!!!

! cal jocabin martix detj
      SUBROUTINE CaldetJ(J,detJ,kesai,eta,mcrd,nnode,coords)

!!!!!!!!!!!!!!!!!!!!!

!     work state
      SUBROUTINE PRINTSTATE(JPROPS,LFLAGS,DTIME,JELEM)

帖子还没有编辑完,不要购买!!!编辑完这一行文字会删除掉。

付费资料的目录为:

(四)CPS4 UEL程序细节讲解

(1)静力计算部分

(2)隐式动力计算部分

(五)将面力转化为节点力施加到用户自定义单元上

(六)C3D8 UEL程序细节讲解(不包含B-BAR修正,包含隐式动力计算部分)

(七)C3D20 UEL程序细节讲解(包含隐式动力计算部分)

(八)待定......

以下内容为付费内容,请购买后观看
该付费内容为:
售价: 0人购买
ABAQUS二次开发abaqus隐式计算原理动力学abaqus uel单元

ABAQUS UEL二次开发(关于UEL动力隐式计算部分的程序讲解)的评论0条

    暂无评论

    ABAQUS UEL二次开发(关于UEL动力隐式计算部分的程序讲解)的相关案例教程

    摘要:以平面线性四节点单元为例,分别采用FE和SBFE算法在ABAQUS提供的UEL子程序接口进行二次开发,UEL采用HHT动力隐式算法编写,将SBFEM嵌入到ABAQUS中。将ABAQUS自带的CPS4单元、自编FEM的UEL和自编SBFEM的UEL三者进行对比。模态对比和动力时程分析验证了三者吻合良好。 (一)平面板自由振动模态分析 (二)平面板动力时程分析 几何信息: 材料信息: 边界条件:
    (一)概述
    挖孔板在简谐荷载作用下动力响应分析。 尺寸:尺寸为15x40,内部挖孔尺寸记不得了,当时是随意画的。 材料属性:弹性模量为1e10,泊松比0.25,密度2000。 边界条件:简谐荷载幅值为10,板左端约束xy向位移。 计算信息:计算总时长10s,积分步长0.01s,采用瑞丽阻尼,alpha=0.25(随意设置,仅用作验证),beta=0.1(随意设置,仅用作验证)。 单元类型:线性四节点等参单元,
    LS-DYNA在2019年被ANSYS收购,2020年整合完毕,新出LS-DYNA的授权开始与ANSYS发行版本保持一致, LS-DYNA各版本需要最低ANSYS授权版本如下: 对于单一版本的LS-DYNA使用,建议安装对应版本的ANSYS授权即可!(只安装授权并和谐) 对于使用LS-DYNA独立安装包的, LS-DYNA Program Manager 程序的,安装完成后,复制netapi32.
    影响力
    粉丝
    内容
    获赞
    收藏
      项目客服
      培训客服
      0 0