首页/文章/ 详情

UEL单元开发(1)——二维弹簧单元

1年前浏览972

终于对UEL下手了!

UEL(Uer Element)是Abaqus众多子程序中最复杂的其中之一(另一个当然是Umat啦~),本篇文章将带着大家从理论到代码,step-by-step编写最简单的二维线性弹簧单元,并与Abaqus自带的弹簧单元做对比,验证代码的正确性。

图1 弹簧单元的节点位移及节点力

理论公式:

   节点力和节点位移关系如下:      K为弹簧刚度系数。
用矩阵表示:    即F=KU,
Abqus在进行迭代求解的过程中,每一个分析步的平衡方程为    式中,P为外力矢量,被Abaqus放在数组RHS中。在迭代法求解的过程中,令   式中,R为残余力矢量,问题转化为求解R=0.

UEL讲解
将数据初始化:





      do 5 k1=1,4      RHS(k1,NRHS)=0      do 5 k2=1,4      AMATRX(k2,k1)=0    5 continue
读入弹簧刚度系数K_x,K_y


STX=PROPS(1)STY=PROPS(2)
建立弹簧的刚度矩阵K,即应用上述矩阵








AMATRX(1,1)=STXAMATRX(1,3)AMATRX(2,2)AMATRX(2,4)AMATRX(3,1)AMATRX(3,3)AMATRX(4,2)AMATRX(4,4)=STY
节点矢量更新,







      do 85 K1=1,4      FORCE(K1)=0      DO 80 K2=1,4      FORCE(K1)=FORCE(K1)+AMATRX(K1,K2)*U(K2)  80  continue      RHS(K1,1)=RHS(K1,1)-FORCE(K1)  85  continue
计算节点间的相对位移和弹簧力,并输出给内部变量SVARS,在.dat文件中生成。




      SVARS(1)=U(1)-U(3)      SVARS(2)=U(2)-U(4)      SVARS(3)=STX*SVARS(1)      SVARS(4)=STY*SVARS(2)

注:要在inp中加入如下(官方规定),详情请点击:http://wufengyun.com:888/books/sub/default.htm






*USER ELEMENT, NODES=2, TYPE=U1, PROPERTIES=3, COORDINATES=2, VARIABLES=41,2*ELEMENT, TYPE=U1, ELSET=SP1001, 64,44*UEL PROPERTY, ELSET=SP10.0, 20.0
完整inp及for文件请在后台内回复:线性弹簧,即可自动获取

例:在节点44、64之间设置ABAQUS标准弹簧。


图2 Abaqus标准弹簧单元结果变形图
Dat文件输出结果:



图3 UEL弹簧单元结果变形图
Dat文件输出:

两者结果一致,程序正确。
注意:UEL单元不能像在变形图中显现出来,只能看到云图值。

今天的学习就到此结束啦,期待下次再见哦~

往期推荐

相关文章,在仿真秀官网搜索:

    Abaqus-Umat子程序理论基础与代码编写


 
   

弹塑性线性强化切线刚度Umat(2)

 
   

弹塑性线性强化常刚度Umat(1)

 

Abaqus-Umat线性随动强化子程序验证

来源:易木木响叮当
Abaqus理论
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-06-01
最近编辑:1年前
易木木响叮当
硕士 有限元爱好者
获赞 224粉丝 284文章 355课程 2
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈