零
概述
有限元法编写二维四边形二阶用户自定义单元,采用abaqus提供的uel二次开发平台,包括单元的刚度矩阵K、质量矩阵M和阻尼矩阵C,uel需要向abaqus主程序输出AMARTIX、RHS等矩阵。
编写的uel子程序适用于静动力计算、频域计算等等,帖子分为两个部分
->理论部分CPE8/CPS8 UEL用户自定义单元开发(1)
结果部分CPE8/CPS8 UEL用户自定义单元开发(2)
壹
形函数/位移插值函数
在经典的三角形单元中,位移的插值是直接在子单元中进行,但是随着单元形状的复杂,直接在子单元进行计算回带来计算的困难的公式推导的困难,因此等参单元法应运而生。在等参元中,单元形状映射中的参数和位移场插值的参数数目相等,因此得名等参元。
采用等参单元法计算二维八节点单元,其中,母单元为
子单元,即我们绘制的网格真实形状为
假设的坐标映射函数为
将母单元中八个节点的坐标导入上述式子,求解出16个系数a0~a15,然后求得八节点等参元的形函数
这是形状映射中x坐标的映射,对于y方向得映射,将上述所有x替换为y即可。
写成求和形式
写成矩阵形式为
其中,对于边角点有
对于边中点有
上述公式,对于位移插值同样适用。
贰
雅各比矩阵
等参元中的数值积分中涉及到自然坐标和局部坐标的转换,这种转换通过雅各比矩阵实现。
根据链式求导法则有
写成矩阵形式
雅各比矩阵为
将式
代入雅各比矩阵有
形函数对母单元坐标的导数,可以直接求导,因此,等参元的雅各比矩阵可以求得。
则有
因此,雅各比矩阵的逆矩阵也可求得。
叁
B矩阵
有限元中,单元的刚度矩阵为
D矩阵是弹性矩阵,在线弹性问题中,D矩阵为常数矩阵,根据物理方程可以推导出。B矩阵是应变-位移矩阵,用作将位移转化为应变,下面重点求解B矩阵。
应变与位移有如下关系
其中算子L为
单元的位移u为
则应变与位移的关系可表示为
则B矩阵为B=LN,具体表达式为
将B矩阵写成一个矩阵为
其中Bi为
在求B矩阵的时候,我们的目标是求得形函数对xy的倒数,这时候我们已经求得了形函数对局部坐标的倒数,因此,通过雅各比矩阵我们就可有求得形函数对xy的倒数,首先,引入以下矩阵
通过雅各比矩阵,上述矩阵可以表示为
上面等式右面的雅各比逆矩阵,我们已经求得,形函数对st坐标的导数也已经求得,因此,上面引入的矩阵就可以求出来,然后再按照元素对应的规律将上述矩阵以此存放到B矩阵中。
在计算质量矩阵的时候,首先计算单元的额协调质量矩阵,然后将行质量集中到对角元,让后将非对角元素置为零,具体可参考帖子:
质量矩阵的求解
有限元先生,公 众号:有限元先生C3D8 BBAR UEL用户自定义单元二次开发(1)
单元的阻尼矩阵可按照比例阻尼求解,即刚度矩阵和质量矩阵的线性组合。
求解刚度矩阵的主程序为
subroutine KKmartix(KK,coords,DMatx,mcrd,nnode,jelem)
INCLUDE 'ABA_PARAM.INC'
double precision coords(mcrd,nnode),dmatx(3,3)
double precision INTEGERPOINT(3),wgt(3)
double precision KK(2*nnode,2*nnode)
double precision B(3,2*NNODE),J(2,2)
double precision DETJ,G,H,COFF
double precision NPXY(2,NNODE)
0.D0 =
0.7745966692D0 =
-0.7745966692D0 =
0.8888888889D0 =
0.5555555556D0 =
0.5555555556D0 =
B=0.d0
J=0.d0
DETJ=0.d0
G=0.d0
H=0.d0
COFF=0.d0
NPXY=0.d0
do I=1,3
do II=1,3
G=INTEGERPOINT(I)
H =INTEGERPOINT(II)
call CalBJ(B,J,DETJ,G,H,MCRD,NNODE,JELEM,COORDS)
COFF=DETJ*WGT(I)*WGT(II)
KK=KK+MATMUL(MATMUL(TRANSPOSE(B),DMatx),B)*COFF
enddo
enddo
return
end
求解质量矩阵的主程序为
subroutine MMmartix(MM,COORDS,PROPS,MCRD,NNODE,JELEM)
INCLUDE 'ABA_PARAM.INC'
INTEGER MCRD,NNODE,JELEM
DOUBLE PRECISION MM(2*NNODE,2*NNODE),COORDS(MCRD,NNODE)
DOUBLE PRECISION NN(2,16)
DOUBLE PRECISION INTEGERPOINT(3),WGT(3)
DOUBLE PRECISION G,H,DETJ,DENSITY,COFF
DOUBLE PRECISION J(2,2),PROPS(*)
MM=0.D0
wgt=0.D0
JJ=0.D0
NN=0.D0
G=0.D0
H=0.D0
j=0.D0
DETJ=0.D0
Coff=0.D0
DENSITY=0.D0
0.D0 =
0.7745966692D0 =
-0.7745966692D0 =
0.8888888889D0 =
0.5555555556D0 =
0.5555555556D0 =
DENSITY=PROPS(3)
DO I=1,3
DO II=1,3
G =INTEGERPOINT(I)
H =INTEGERPOINT(II)
CALL CalDETJ(J,DETJ,G,H,MCRD,NNODE,JELEM,COORDS)
CALL CalNN(NN,G,H)
COFF=DETJ*WGT(I)*WGT(II)*DENSITY
MM =MM+(MATMUL(TRANSPOSE(NN),NN))*COFF
ENDDO
ENDDO
return
end
至此,单元的刚度矩阵、质量矩阵和阻尼矩阵已经求得,uel程序的核心部分已经完成,下一个帖子会更新自编CPE8/CPS8 uel程序的计算结果。