UEL单元开发(2)——一维杆单元(内含大福利!)

木木做单元开发也有一段日子了,在编写XFEM的单元时,遇到了瓶颈,打算先告一段落,将自己的一些经验分享出来给大家,希望帮助大家快速入门,在以后的推文中也会以单元开发为主,就像之前讲解Umat一样,用自己通俗易懂的语言讲述下来。

本篇推文由两部分组成:「其一」,以「一维杆单元」UEL子程序为主,从理论到代码Step-by-Step向大家讲解,并于Abaqus中标准单元做对比,验证代码的正确性;「其二」,木木受邀于北鲲云超算平台做主讲人,将在5月24日晚上七点于B站进行大约一个小时的讲演汇报,带着大家熟悉Abaqus的基本操作,基于Abaqus的扩展有限元仿真以及如何正确使用超算平台,直播过程中还有大量惊喜礼品、丰富算力金进行抽奖~欢迎大家积极参与。

一维杆单元UEL子程序

一维杆单元子程序的代码应该是UEL中最简单的了吧,就好像线弹性Umat那样,囊括了一些UEL的基本思想,可对比之前的二维弹簧单元子程序来学习

理论讲解

弹性力学中利用「最小势能原理」(或虚功原理)来得到单元刚度方程,具体操作可查看:

  • 《有限元基础教程》——曾攀
  • 《北航弹性力学博后讲透弹性力学》——@兵心依旧022(B站Up)

单元刚度矩阵:

其中: 为杨氏模量, 为杆的横截面积, 为杆的长度。UEL需要的「核心」就是求得单元刚度矩阵,「残余力RHS」可以认为是0(Cohesive单元除外),以后会给大家普及国际上流行的PPR内聚力单元

代码讲解

篇幅原因,INP文件可在后台回复“杆单元”,即可获得,这里仅给出「关键行」

*User element, nodes=2, type=U1001, properties=2, coordinates=2, variables=4
1,2,6
*Element, type=U1001
1,1,2
*Elset, elset=Set-1
1
*Uel property, elset=Set-1
2.0E11, 0.02

程序代码如下:

      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(*)

INTEGER I,J
C 获取材料属性
Y_M = PROPS(1)
AREA = PROPS(2)
C 获取节点坐标计算单元长度
LEN_EL = ABS(COORDS(1,2)-COORDS(1,1))
write(6,*) LEN_EL
C 构造刚度矩阵
K_EL = Y_M*AREA/LEN_EL
AMATRX(1,1) = K_EL
AMATRX(1,2) = -K_EL
AMATRX(2,1) = -K_EL
AMATRX(2,2) = K_EL
C 求RHS

DO I = 1,NDOFEL
RHS(I,1) = 0
DO J = 1,NDOFEL
RHS(I,1) = RHS(I,1) - AMATRX(I,J)*U(J)
ENDDO
ENDDO

RETURN
END

程序很简单,注释的很明白哦~UEL的作用就是构造一个的那元,核心就是构造出单元刚度矩阵,不需要常规有限元进行刚度矩阵组装,考虑摩擦等等一连串的流程,很方便即可开发出自己想要的单元(「前提」是:理论掌握扎实!)

与Abaqus标准Truss单元对比

UEL单元开发(2)——一维杆单元(内含大福利!)的图1


结果一致,程序正确!

直播抽奖

接下来是预约直播抽奖环节了,较早关注木木的粉丝应该知道,木木不定期会搞一次抽奖活动,虽然是小小的礼品,但也代表了木木的心意,嘻嘻~

木木受邀于北鲲云超算平台做主讲人,将在5月24日晚上七点于B站进行大约一个小时的讲演汇报,带着大家熟悉Abaqus的基本操作,基于Abaqus的扩展有限元仿真以及如何正确使用超算平台,直播过程中还有大量惊喜礼品、丰富算力金进行抽奖~欢迎大家积极参与。

UEL单元开发(2)——一维杆单元(内含大福利!)的图2

展示部分奖品:很精致哦~

UEL单元开发(2)——一维杆单元(内含大福利!)的图3

木木粉丝专属福利

扫描下面的二维码进行注册即可获得体验金「200元!!!」,可以用很久哦~

UEL单元开发(2)——一维杆单元(内含大福利!)的图4

ABAQUSABAQUS二次开发

UEL单元开发(2)——一维杆单元(内含大福利!)的评论0条

    暂无评论

    UEL单元开发(2)——一维杆单元(内含大福利!)的相关案例教程

    不等待 即关注 【简述ABAQUS中UEL子程序】 ABAQUS作为成熟的商用有限元软件,可为高级用户提供特定的分析需求。ABAQUS常见的二次开发子程序包括:UMAT、VUMAT、UGENS、UEL和VUEL等。其中UEL/VUEL分别适用于ABAQUS的Standard/Explicit求解器。只有清楚有限元分析的基本原理,才能够较好地了解其分析的力学原理,才能对特定的分析需求编写合适的分析单
    UEL单元开发(3)—— CST单元 有限元编程暂且告一段落,接下来会更新一些有关UEL自定义单元相关的内容,前几期带着大家做了一维杆单元、二维弹簧单元的UEL程序,本期推文继续更新有关常应变三角形单元——CST单元,理论基础可参照栏目《有限元基础教程》。源代码及程序文件可在公众号:易木木响叮当,后台回复:CST_UEL,即可自动获取,让木木带着你“手撕源码”吧!!! 手撕源代码 IMPLICIT
    微信公众号:[易木木响叮当] 关注可了解更多的[有限元数值仿真技巧]。问题或建议,请公众号留言; 如果你觉得木木同学对你有帮助,欢迎赞赏。 今天木木给大家带来的是梁单元的UEL子程序,作为杆系单元重要的组成成员,该部分是得好好讲讲了,而且要全面的讲,尽木木的知识能力所及讲的透彻,让刚入手UEL的小白们看的“起劲”!参考文档和源文件可在公众号后台回复:梁单元UEL即可。 今天分享的内容主要有:梁单元
    知乎、B站:[易木木响叮当] 关注可了解更多的有限元数值仿真技巧。问题或建议,请公众号留言; 如果你觉得木木同学对你有帮助,欢迎赞赏。 本次给大家带来的主要内容是:如何使用UEL子程序中开发三节点平面梁单元? 关于梁单元的介绍,我在之前的推文中介绍过如何用Matlab编制梁单元有限元程序,及两节点的梁单元UEL子程序编制,感兴趣的朋友可以点击跳转阅读浏览。 要点 为防止轴力过大出现“过度的刚性行为
    概述:开发了适用于静力通用计算的三维二十节点(C3D20)的用户自定义单元,在挖孔悬臂梁受剪切荷载算例中,位移计算结果与ABAQUS自带单元保持一致。对比刚度矩阵,与abaqus保持一致。 (一)模型模型信息 如下图,悬臂梁尺寸10X10X100,设置四个孔洞(孔洞随意画的,具体参数不晓得,详见附件),弹性模量1e6,密度2000,泊松比0.25,荷载为1e10。 给模型施加静荷载,设置计算时长为
    影响力
    粉丝
    内容
    获赞
    收藏
      项目客服
      培训客服
      0 1