注意:针对ABAQUS版本5.3(14-04-94)对*UMAT的修改
1) 上面定义*UMAT子程序的变量列表,以及下面标注的第一个(标准)变量块,与早期的 ABAQUS版本相比,添加了变量名称。
2) 声明:include 'aba_param.inc' 必须添加如下。
3) 从5.3版本开始,ABAQUS文件只使用双精度。文件 aba_param.inc有一行“implicit real*8”,因为它包含在主子程序中,所以它将那里的变量定义为双精度。 但是其他子程序仍然需要定义“implicit real*8”,因为可能存在未通过列表或公共块传递给它们的变量。
4) 这是ABAQUS 5.6版的最新版本。
5) J. W. Kysar添加的注释(1997年11月4日)。该 UMAT已被修改以跟踪每个独立滑移系中的累积剪切应变。需要此信息来纠正Bassani和Wu硬化法则执行时的错误。任何已添加或修改的代码行都紧跟在以CFIXA开头的行之前,并在以CFIXB开头的行之后。添加或修改的任何注释行都将以CFIX开头。
Bassani和Wu的硬化定律执行不正确。该定律是双曲正割平方和双曲正切的函数。然而,sech和tanh的参数与单个滑移系统上的*total*slip相关。以前,UMAT通过在每个滑移系统上使用*当前*滑移来实施此硬化定律。问题就在于此。UMAT并未将当前滑移限制为正值。因此,当遇到带有负号的滑移时,包含tanh的项会导致负的硬化率(因为tanh是一个奇函数)。
UMAT已通过添加状态变量来固定,通过整合每个单独滑动系统的滑移率绝对值来跟踪每个滑动系统上的*总*滑动。这些“相关解变量”可用于后处理。输入文件中唯一需要的更改是必须更改DEPVAR命令。
在Cray上使用单精度
1) 删除“IMPLICIT*8 (A-H,O-Z)”语句;
2) 将“REAL*8 FUNCTION”改为“FUNCTION”;
3) 将双精度函数DSIGN更改为SIGN。
子程序:
ROTATION——形成旋转矩阵,即初始状态下全局系统中立方晶体[100]、[010]和[001]方向的方向余弦。
SLIPSYS——计算滑移系的数量、滑动方向上的单位向量和初始状态下立方晶体滑移面的单位法线。
GSLPINIT——计算初始状态下当前强度的初始值。
STRAINRATE——基于分剪切应力和强度的当前值,计算滑移系中的剪切应变率。
LATENTHARDEN——形成自硬化和潜在硬化矩阵。
ITERATION——为Newton-Raphson迭代生成数组。
LUDCMP——LU分解。
LUBKSB——基于LU分解方法的线性方程求解器(必须先调用LUDCMP)。
函数子程序:
F——滑移系中的剪切应变率
变量:
应力——应力(输入和输出)有限变形的柯西应力。
STATEV——相关解变量(输入和输出)。
DDSDDE——雅可比矩阵(输出)。
传入信息的变量:
STRAN——应变,有限变形的对数应变(实际上,速度梯度的对称部分相对于时间的积分)。
DSTRAN——应变增量。
CMNAME——在*MATERIAL选项中给出的名称。
NDI——正应力分量的数量。
NSHR——工程剪切应力分量的数量。
NTENS——NDI+NSHR。
NSTATV——相关解变量的数量(在*DEPVAR选项中定义)。
PROPS——在*USER MATERIAL选项中输入的材料常数。
NPROPS——材料常数的数量。
该子程序为ABAQUS有限元程序提供了单晶的塑性本构关系。单晶塑性滑移服从施密特定律。程序给出了小变形理论和有限旋转有限应变理论的选择。
应变增量由弹性部分和塑性部分组成。弹性应变增量对应于晶格拉伸,塑性部分是塑性滑移所有滑移系统的总和。每个滑移系统的剪应变增量假定为相应分切剪应力与当前强度之比和时间步长的函数。分切剪应力是应力张量与滑移变形张量(Schmid因子)的双乘积,强度的增量通过自硬化和潜在硬化函数与所有滑移系统的剪切应变增量相关。
这里使用了Peirce、Shih和Needleman (1984)提出的隐式积分方法。 该子程序提供了一个迭代选项来求解每个增量内的应力和相关解状态变量。
本程序适用于单个CUBIC晶体。但是,此代码可以推广到其他晶体(例如HCP、四方晶、正交各向异性等)。只需要修改子程序ROTATION和SLIPSYS以包含晶体长宽比的影响。
重要提示:
1) 状态变量NSTATV的数量必须大于(或等于)十(10)倍所有集合中滑移系统的总数,NSLPTL,加上五(5) NSTATV >= 10*NSLPTL+5
将s表示为滑移方向,将m表示为滑移平面的法线。这里(s, -m), (-s, m)和(-s, -m)不被认为独立于(s, m)。对于立方晶体,每组滑移系统的数量可以是 6、12、24 或 48 个,例如{110}<111> 为12。
需要更多参数来表征单晶本构规律的用户,例如Zarka提出的框架应该使NSTATV大于(或等于)这些参数的数量NPARMT加上滑动系统总数的九倍,NSLPTL,再加上五
NSTATV >= NPARMT+9*NSLPTL+5
2) 如果考虑潜在硬化,切线刚度矩阵通常不是对称的。用户必须在输入文件中的*USER MATERIAL卡上声明“UNSYMM”。
参数ND确定此子程序中数组的维数。当前选择150是立方晶体的上限,最多可激活三组滑移系统。用户可以将参数ND减少到任意数量,只要大于或等于所有组中的滑移系统总数。 例如,如果{110}<111>是唯一可能激活的滑移系集合,则ND可被视为十二(12)。
NSLIP——每套内滑移系数量。
SLPDIR——滑移方向(初始状态的单位向量)。
SLPNOR——滑移面的法线(初始状态下的单位法线)。
SLPDEF——滑移变形张量(施密特因子)。
SLPSPN——滑移自旋张量(仅在有限旋转时需要)。
DSPDIR——滑移方向的增量。
DSPNOR——滑移平面法线的增量。
DLOCAL——局部立方晶系中的弹性矩阵。
D——全局系统中的弹性矩阵。
ROTD——旋转矩阵将DLOCAL转换为D。
ROTATE——旋转矩阵,全局系统中立方晶体的[100]、[010]和[001]的方向余弦。
FSLIP——滑移系的剪切应变率。
DFDXSP——FSLIP对x=TAUSLP/GSLIP的导数,其中TAUSLP是分剪切应力,GSLIP是当前强度。
DDEMSD——弹性模量张量与滑移变形张量的双点积,仅对于有限旋转,滑移自旋张量与应力的点积。
H——自硬化和潜在硬化矩阵。
DDGDDE——滑移系中剪切应变增量对应变增量的导数。
DSTRES——应力的Jaumann增量,即在与材料一起旋转的轴上形成的共旋应力增量。
DELTAS——与晶格拉伸相关的应变增量。
DSPIN——与材料元素相关的自旋增量。
DVGRAD——当前状态下变形梯度的增量,即速度梯度乘以时间增量。
DGAMMA——滑移系中剪切应变的增量。
DTAUSP——滑移系中分剪切应力的增量。
DGSLIP——滑移系中当前强度的增量。
迭代数组:
相关解状态变量STATEV:用NSLPTL表示总滑移系统的数量,这将在此代码中计算。
STATEV数组:
1 - NSLPTL :滑移系中当前的强度。
NSLPTL+1 - 2*NSLPTL :滑移系中的剪切应变。
2*NSLPTL+1 - 3*NSLPTL :滑移系中的分剪切应力。
3*NSLPTL+1 - 6*NSLPTL :滑移面法线的当前分量。
6*NSLPTL+1 - 9*NSLPTL :滑移方向的当前分量。
9*NSLPTL+1 - 10*NSLPTL :每个滑动系统上的总累积剪切应变(每个滑移系统中剪切应变的绝对值之和)
10*NSLPTL+1 :所有滑移系统上的总累积剪切应变(所有滑动系统中剪切应变的绝对值之和)
10*NSLPTL+2 - NSTATV-4 :用户可能需要的附加参数来表征单晶的本构定律(如果有的话)。
NSTATV-3 :第一组滑移系的数量。
NSTATV-2 :第二组滑移系的数量。
NSTATV-1 :第三组滑移系的数量。
NSTATV :所有组中的滑移系总数。
材料常数PROPS:
PROPS(1) - PROPS(21)——一般弹性各向异性材料的弹性常数。
各向同性:
立方系:
正交各向异性:
各向异性:
PROPS(25) - PROPS(56)——表征所有在立方晶体中激活的滑移系统的参数。
PROPS(25)——滑移系统的组数(最多3个),例如(110)[1-11]和(101)[11-1]属于同一套滑移系,(110)[1-11]和(121)[1-11]属于不同套滑移系(它必须是一个实数,例如3.,而不是3!)。
PROPS(33) - PROPS(35)——垂直于第一组滑移系中的典型滑移面,例如(1 1 0)(它们必须是实数,例如1. 1. 0.,而不是1 1 0!)。
PROPS(36) - PROPS(38)——第一组滑移系统中的典型滑移方向,例如[1 1 1](它们必须是实数,例如1. 1. 1.,而不是1 1 1!)。
PROPS(41) - PROPS(43)——垂直于第二组滑移系统中的典型滑移面(实数)。
PROPS(44) - PROPS(46)——第二组滑移系统中的典型滑移方向(实数)。
PROPS(49) - PROPS(51)——垂直于第三组滑移系统中的典型滑移面(实数)。
PROPS(52) - PROPS(54)——第三组滑移系统中的典型滑移方向(实数)。
PROPS(57) - PROPS(72)——表征全局系统中单晶初始取向的参数。
确定晶体取向需要两个不平行向量在全局系统和局部立方晶系。
PROPS(57) - PROPS(59)——[p1 p2 p3],局部立方晶系中第一个向量的方向,例如[1 1 0](它们必须是实数,例如1. 1. 0.,而不是1 1 0!)。
PROPS(60) - PROPS(62)——[P1 P2 P3],全局系统中第一个向量的方向,例如 [2. 1. 0.](不一定是单位向量)。
PROPS(65) - PROPS(67)——局部立方晶系中第二向量的方向(实数)。
PROPS(68) - PROPS(70)——全局系统中第二个向量的方向。
PROPS(73) - PROPS(96)——表征粘塑性本构定律的参数(剪切应变率与分剪切应力),例如 幂律关系。
PROPS(97) - PROPS(144)——表征滑移系统自硬化和潜在硬化规律的参数。
PROPS(145)- PROPS(152)——表征向前时间积分方法和有限变形的参数。
PROPS(145)——控制隐式积分的参数theta,介于0和1之间。
PROPS(146)——控制是否考虑晶体有限旋转和有限应变的影响的参数NLGEOM。
PROPS(153)- PROPS(160)——表征迭代方法的参数。
PROPS(153)——参数ITRATN控制是否使用迭代方法。
PROPS(154)——最大迭代次数ITRMAX。
PROPS(155)——滑移系中剪切应变的绝对误差GAMERR。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删