【子程序】Abaqus显式分析梁单元超弹性VUMAT

【子程序】Abaqus显式分析梁单元超弹性VUMAT的图1  

显式分析梁单元超弹性不可用


   
【子程序】Abaqus显式分析梁单元超弹性VUMAT的图2   

有次在做一个张拉整体结构分析时,为对比拉力材料对Tensegrity冲击动态响应的影响,我试了尼龙和橡胶材料,并且对单元类型也进行了不同的尝试-Beam/Truss Element,当试到B31-超弹性本构这个组合时,Abaqus返回了一个ERROR: "Hyperelasticity or hyperfoam is not available with beam elements in Abaqus/Explicit."

【子程序】Abaqus显式分析梁单元超弹性VUMAT的图3

Tensegrity分析(Truss):左-尼龙线,右-橡皮筋

这个报错难道是因为橡胶材料的不可压缩性?带着疑惑查了查帮助文档:Abaqus有明确地说明超弹性本构模型可以用于Standard中的梁单元,但没有提Explicit梁单元能不能用,表达算是比较模糊,因为其他本构模型的介绍中,往往对于禁用单元讲的都比较干脆。

【子程序】Abaqus显式分析梁单元超弹性VUMAT的图4  

适用于显式梁单元的超弹性VUAMT


   
【子程序】Abaqus显式分析梁单元超弹性VUMAT的图5  

后来发现,原来达索官方专门为显式分析的梁单元提供了一个超弹性本构模型的VUMAT,其应变能函数是基于第一不变量I1的描述,可以通过用户提供的单轴名义应力-应变数据,计算有限变形框架下的柯西应力,不过目前没有将其正式内置于Abaqus材料模型中,所以很多人都不知道。涉及到的文件一共有4个(这里讨论的是Windows版,Linux版也是4个类似文件)

beam_hyper-xpl.obj

beam_hyper-xplD.obj

explicitU.dll

explicitU-D.dll

文件需要从官方网站下载,这几个文件中,凡是名称以D结尾的,都是双精度运行时调用的,其中:

*.obj格式的文件是包含子程序的目标文件(object-file),它可以通过abaqus make程序对C、C++或Fortran编写的子程序源文件(source-file)编译得到,求解时可以通过user=*.obj进行调用;

*.dll格式的文件是共享库,也是通过abaqus make程序执行source-file编译得到的,共享库文件避免了后续频繁使用子程序时的编译和调用,所以如果一个子程序经常用到,可以把它作为共享库来使用。

Abaqus帮助文档  

下面介绍一下这几个文件的使用方法。

【子程序】Abaqus显式分析梁单元超弹性VUMAT的图6  

文件使用方法


   
【子程序】Abaqus显式分析梁单元超弹性VUMAT的图7   
  • 方法1

    调用子程序目标文件,以双精度为例

  • 直接执行命令:

abaqus job=jobname user=beam_hyper-xplD double
  • 方法2

    利用共享库,以双精度为例

  • 首先将共享库文件随便放入一个文件夹,比如:

E:\SIMULIA\hyperbeamxpl

  • 然后修改环境文件,在abaqus_v6.env的最后加上共享库路径:

usub_lib_dir='E:\SIMULIA\hyperbeamxpl'

  • 执行命令:

abaqus job=jobname double

下面是一个算例验证,对橡皮筋网拉伸将近100%的应变,并与重物相互作用,结果表明B31单元可以与此VUMAT结合使用,另外,后处理也能渲染出橡皮筋拉伸后的径向收缩。

【子程序】Abaqus显式分析梁单元超弹性VUMAT的图8

Abaqus显式分析超弹性梁单元B31

【子程序】Abaqus显式分析梁单元超弹性VUMAT的图9

后处理梁单元截面渲染

【子程序】Abaqus显式分析梁单元超弹性VUMAT的图10  

材料定义方法


   
【子程序】Abaqus显式分析梁单元超弹性VUMAT的图11   
  • 基本定义

可以直接将超弹性材料测试得到的单轴试验数据(名义应力-应变)复制进入inp文件中*user material关键字下的数据行;也可以在界面下输入,但是要注意补齐空位(每输2个数据,需要间隔6个0再继续输),比较麻烦,建议使用前一种方式直接复制粘贴。

  • *Material, name=artif-silk

  • *Density

  • 1.08E-009

  • *Depvar

  •      4,

  • *User Material, constants=168

  • 0.0                , 0.0

  • 0.085793808102607  , 0.0252809002995491

  • 0.131089001893997  , 0.0558524206280708

  • 0.191963493824005  , 0.102807097136974

  • 0.250014811754227  , 0.149700403213501

  • 0.301807403564453  , 0.20014800131321

  • 0.354409605264664  , 0.248111605644226

  • 0.403482794761658  , 0.295743614435196

  • 0.466339707374573  , 0.358673602342606

  • 0.510005414485931  , 0.4061538875103

  • 0.529258906841278  , 0.4506716132164

  • 0.657301008701324  , 0.545544981956482

  • 0.716655910015106  , 0.605610311031342

  • 0.741274118423462  , 0.649364411830902

  • 0.886087417602539  , 0.747435927391052

  • 0.952696979045868  , 0.802245795726776

  • 1.020856022834780  , 0.855429828166962

  • 1.077298998832700  , 0.89646190404892

  • 1.14995396137238   , 0.947604119777679

  • 1.22431004047394   , 0.998590111732483

  • 1.23263394832611   , 1.02863895893097

  • 附加定义

在显式分析中,若梁单元只有拉、压变形,那么使用基本定义中的数据就足够了;如果梁单元会发生较大的弯曲变形,那么必须在*Beam Section中指定铁木辛柯梁B31单元截面的*Transverse Shear,即需要知道横向剪切刚度,如何得到要输入的数值呢?

首先,将复制显式模型并替换分析步为Standard类型的分析,然后在 *Preprint, model=yes模式下运行datacheck,最后在生成的dat文件中就能找到横向剪切刚度了,可以直接用于显式分析。

近期培训

通知:9月直播培训招生即将结束,欲参加者欢迎点击图片了解更多。

【子程序】Abaqus显式分析梁单元超弹性VUMAT的图12

适用于显式梁单元的超弹性VUAMT(Windows版+Linux版一共8个文件)领取(2021年9月8号截止)→在此公众号后台回复关键字:

beam_hyper-xpl

系统将自动发送网盘链接(7日后失效)。

ABAQUSUMAT/VUMAT超弹性梁单元VUMAT

【子程序】Abaqus显式分析梁单元超弹性VUMAT的评论8条

  • SnowWave02
    1
    有没有.for的超弹性子程序,还是很想知道它的内部实现的
  • Samenov
    0
    您好,这个*横观剪切模量,也是基于局部材料坐标系的吗?帮助上没说

【子程序】Abaqus显式分析梁单元超弹性VUMAT的相关案例教程

正交各向异性(工程常数): EngineeringConstants-xplD.obj EngineeringConstants-xpl.obj 共享库: explicitU.dll explicitU-D.dll
vumat子程序只用于显示分析步,用来定义用户自定义材料,这里首先对较为简单的各向同性材料本构模型进行构建。 vumat的工作原理与umat类似,只不过vumat不需要再提供雅可比矩阵,以矢量的形式进行储存运算。剪切应变不再是工程应变,而变成了张量的形式。 对于各向同性的刚度矩阵方程在umat部分已经提过,这里直接放方程式: 找到变量之间的对应关系,再写入子程序中就行了。 本构方程是反应材料的固有
这是我运行umat是log文件中的错误,有谁知道为啥吗? End Compiling Abaqus/Standard User Subroutines Begin Linking Abaqus/Standard User Subroutines libifcoremt.lib(for_fp_class.obj) : error LNK2005: for_is_nan_t_ 已经在 LIBIFCOR
VUMAT子程序使用方法 在ABAQUS属性模块(property)中 1. props ( * ) * 数值代表在在User Material 中填写的对应数值,例如E1 = props(1) 对应的是对一个数值130000,即后续在子程序中出现E1代表数值130000。 2. 子程序中stateNew(k,*) 与Depvar相对应 ②代表变量stateNew(k,*) 的总数,填写方法为:检
引言 Abaqus为用户提供了大量的用户子程序,用户可以通过子程序接口开发Abaqus原本不具备的单元、材料、载荷等。此外,利用子程序能帮助我们去理解、推测Abaqus的计算过程,这对国产自主软件对标Abaqus功能开发具有一定的参考意义。 一、安装Abaqus,并配置使用用户子程序 Win10(x64)成功安装VisualStudio2012+Intel Visual Fortran Compo
硕士/结构仿真工程师
影响力
粉丝
内容
获赞
收藏
    项目客服
    培训客服
    10 18