相场法是近年来受到广泛关注的一种方法,它基于Griffith弹性断裂力学的基本理论[71],可以模拟裂纹的任意扩展、分支和收敛。与其他数值方法不同,相场法不需要额外的不连续性。为了研究热弹性固体中多场耦合脆性断裂问题的动态演化,本章提出了一种Abaqus/Explicit多场耦合相场模型的全功能实现方法,并通过几个典型的算例验证了算法的有效性和实用性。......
2023-11-03
1.各向同性等温弹性材料的本构方程
各向同性等温弹性材料的本构方程为(通过拉梅常数λ和μ表示)[18]
将式(5.28)表达为Jaumann率的形式(共轴旋转坐标系下):
在共轴旋转框架下进行时间积分,可得
所以应力更新的过程为
式中,ΔR·σt·ΔRT已经在用户子程序UMAT外实现了。
用户子程序UMAT中传入的应力是已经用ΔR旋转过的应力,存储在STRESS(NTENS)中,应变增量存储在DSTRAN(NTENS)中,Jaumann率弹性矩阵存储在DDSDDE(NTENS,NTENS)中,用传入的弹性常数PROPS(i)更新弹性矩阵。UMAT传入的应变为工程应变,弹性矩阵表示如下:(www.chuimin.cn)
2.各向同性等温弹性材料的用户材料子程序UMAT
由式(5.30)和式(5.32)可以编写子程序的代码,下面给出ABAQUS隐式程序的用户子程序UMAT的实现,代码如下:
说明:上面的程序只适用于三维实体单元、(广义)平面应变单元、轴对称单元的情况,并不适用于平面应力单元,因为平面应力单元的材料刚度矩阵和上面的程序写出的有所不同。
3.各向同性等温弹性材料的用户材料子程序VUMAT
同样,也可以用VUMAT实现各向同性等温弹性材料的本构模型。下面给出ABAQUS显式程序的用户子程序VUMAT的实现,代码如下:
说明:上面的程序同时考虑了二维(nshr=1)和三维(nshr>1)的情况,所以可适用于二维平面应变、轴对称以及三维模型。
有关基于ABAQUS的有限元子程序开发及应用的文章
相场法是近年来受到广泛关注的一种方法,它基于Griffith弹性断裂力学的基本理论[71],可以模拟裂纹的任意扩展、分支和收敛。与其他数值方法不同,相场法不需要额外的不连续性。为了研究热弹性固体中多场耦合脆性断裂问题的动态演化,本章提出了一种Abaqus/Explicit多场耦合相场模型的全功能实现方法,并通过几个典型的算例验证了算法的有效性和实用性。......
2023-11-03
混合硬化塑性材料的用户子程序UMAT的代码如下:上面的这个用户子程序UMAT除了背应力张量中的静水压力项不在求解中起作用外,其计算结果与ABAQUS中的线性运动硬化金属塑性材料模型的结果完全相同。这个微小的差异是因为,用户子程序UMAT中使用Prager演化定律来产生偏背应力张量,而ABAQUS中的线性运动硬化金属塑性材料模型则使用Ziegler演化定律,其中包含了流体静水压力对背应力张量的额外贡献。变量statev由ndi个直接分量和nshr个剪切分量组成。......
2023-11-03
本节将给出一个完整的用C++编写的用户子程序的例子,这是一个简单的线弹性本构模型的用户材料子程序UMAT,其他用Fortran语言编写的用户子程序若要转化为C++编写的用户子程序,也可以仿照这个例子修改用户子程序的接口。C++语言的面向对象的属性在编写大型复杂结构的子程序时具有独特的优势,编写的代码结构更加清晰、可读性更高。......
2023-11-03
在基于线程的并行计算中,对于公共空间的变量或者共享的资源,需要进行额外的保护。它们的编号为1~10,开发者可以通过它们的编号进行使用。初始化互斥锁的最佳位置在子程序uexternaldb中。示例如下:经过上面代码的计算,1号互斥锁(#1)就可以在其他要被调用的用户子程序中使用了,以保护对共享公用块中变量的访问,防止其被多个互相竞争的线程同时访问而造成破坏。......
2023-11-03
不同于基于线程的并行计算,MPI实现的并行是进程级的。基于MPI的用户子程序的并行计算,总是通过一些特定的函数来实现,先简单介绍一下这些函数:●MPI_Init:告知MPI系统进行所有必要的初始化设置。它写在启动MPI并行计算的最前面。以上只是表达了作为一个MPI并行计算的基本结构,并没有真正涉及进程之间的通信,为了更好地进行并行,必然需要在进程间通信。下面给出一个具体的基于MPI的并行计算的例子:......
2023-11-03
蠕变是固体材料在保持应力不变的条件下,应变随时间延长而增加的现象。由于蠕变,材料在某瞬时的应力状态一般不仅与该瞬时的变形有关,而且与该瞬时以前的变形过程有关[24]。虽然Abaqus/Standard提供了丰富的蠕变本构模型,但Abaqus/Explicit还没有关于蠕变的本构模型。然而,对于一些特定的问题,采用Abaqus/Standard很难求解收敛,此时不得不借助Abaqus/Explicit进行求解,如果其中涉及的材料具有较为明显的蠕变特性,则需要借助VUMAT在Abaqus/Explicit中实现蠕变本构模型[26]。......
2023-11-03
③对于三维实体单元,应力分量的存储顺序:σ11,σ22,σ33,σ12,σ13,σ23。在用户子程序UMAT中,剪切应变是以工程应变的形式存储的,即存储的是γ12:无论是二维问题还是三维问题,变形梯度张量Fij总是存储了三维的形式。如果需要用总体坐标系下的应力进行计算和其他处理,则可以通过子程序ROTSIG将应力张量转动回去。④如果用户子程序UMAT被用在减缩积分单元或者壳单元(如S4)和梁单元中,就必须指定沙漏刚度和横向剪切刚度。......
2023-11-03
当一个含有用户子程序的模型被提交给ABAQUS分析时,正确的编译和链接命令应该被自动执行。对于不同的运行平台,ABAQUS正确的编译和链接命令默认存储在环境文件中,这个文件位于abaqus_dir/site目录下,这里的abaqus_dir是ABAQUS的安装目录。如果想将子程序提供给他人使用,但不希望他人看到子程序的源代码,在这种情况下,可将子程序的源码编译成obj文件提供给他人。这个目标文件可以运行子程序,但不会显示源代码。......
2023-11-03
相关推荐