文档库 最新最全的文档下载
当前位置:文档库 › Abaqus USDFLD使用教程

Abaqus USDFLD使用教程

Abaqus USDFLD使用教程
Abaqus USDFLD使用教程

user-subroutines-l4-usdfld 课件

目录

引言 (3)

Abaqus的使用 (3)

定义场变量相关的材料属性 (3)

在用户子程序内定义场变量 (3)

定义场变量 (4)

访问积分点上的计算数据 (4)

显式方法vs. 隐式方法 (4)

使用解相关的状态变量(Solution-Dependent State Variables,SDVs) (4)

用户子程序GETVRM (4)

GETVRM子程序界面 (5)

提供给GETVRM的变量 (5)

GETVRM返回的变量 (5)

GETVRM所支持的单元 (5)

USDFLD子程序界面 (5)

需定义的变量 (6)

可能被定义的变量 (6)

变量信息 (6)

USDFLD与自动时间增量 (7)

实例:层状复合板失效 (7)

材料模型 (8)

基体拉伸开裂 (9)

基体压缩开裂 (9)

纤维-基体剪切失效 (9)

部分输入数据 (10)

用户子程序 (10)

结果 (10)

备注 (10)

1.1.49 USDFLD: User subroutine to redefine field variables at a material point (11)

参考文献 (11)

概述 (11)

明确的解依赖性 (11)

定义场变量 (11)

访问材料点数据 (12)

状态变量 (12)

用户子程序界面 (12)

定义的变量 (12)

能够更新的变量 (12)

传递信息的变量 (13)

实例:损伤弹性模型 (14)

2.1.6 Obtaining material point information in an Abaqus/Standard analysis (15)

参考文献 (15)

概述 (16)

界面 (16)

提供给实用程序的变量 (16)

从实用程序中返回的变量 (16)

可用的输出变量钥匙 (16)

返回分量的顺序 (17)

返回值的分析时间 (17)

返回值的平衡状态 (17)

实例 (17)

访问状态依赖变量 (17)

不支持的单元类型、进程与输出变量钥匙 (17)

引言

·通常使用用户子程序USDFLD,当需要对复杂材料行为建模与用户不想要使用UMA T子程序时

——在ABAQUS/Standard中的大多数材料属性可以被定为场变量的函数

——子程序USDFLD允许在单元的每个积分点定义

——子程序可以访问计算结果数据,因此,材料属性可以是计算结果数据的函数

·子程序USDFLD只能使用在具有*Material选项的材料属性的单元(详见p. L4.18页上GETVRM所支持的单元)Abaqus的使用

·在模型中,与DLOAD和FILM子程序相比,包括USDFLD在内的子程序需要付出更多的努力

·通常用户必须定义材料属性的依赖性,例如弹性模量或屈服应力,作为场变量的函数

——这可以通过表格输入或额外用户子程序来完成

·使用子程序USDFLD来在积分点上定义的值

——在材料定义中包括了?USER DEFINED FIELD 选项,这表明对于使用材料定义的这些单元来说,USDFLD子程序可以使用

——可以被定义为在积分点上有的计算结果数据的函数,例如应力、应变

定义场变量相关的材料属性

这里有两种方法,能够定义场变量相关的材料属性

·对于Abaqus内置的材料模型,使用表格定义方式

·使用其他用户子程序来定义材料属性为的函数,例如蠕变CREEP

表格定义

·使用在材料选项上DEPENDENCIES选项来指定对于给定材料选项存在有多少不同场变量

——弹性模量(E)是场变量#1(f1)的函数。当f1增加,E减少。f1可以代表材料的损伤。

——热膨胀系数是f1与场变量#2(f2)的函数

——f1值的改变都会影响弹性模量(E)与热膨胀系数α

——Abaqus在表格输入的数据点间将使用线性插值。当f i超过了指定范围将使用最后一个数据点,它不会对数据外推

——对于每一种材料属性,f i的范围不必须是一样的

在用户子程序内定义场变量

·将定义在USDFLD中的f i值传递到下列用户子程序内:

CREEP、HETV AL、UEXPAN、UHARD、UHYPEL、UMAT、UMATHT、UTRS、UINTER

·定义在这些子程序内的材料属性可以是f i的函数

定义场变量

·Abaqus通常认为场变量f i是节点数据

·当Abaqus开始计算单元应力与刚度时(例如,一个单元循环),它将对节点数据f i插值到单元的积分点

·当使用子程序USDFLD时,在计算单元的材料属性前,定义在子程序USDFLD中的这些数值将取代了插值f i ·Abaqus并不存储USDFLD定义的这些数值

——如果你需要访问先前的值f i,你必须在USDFLD中把他们存储为相关解变量(solution-dependent variables,SDVs)

·假如你绕过USDFLD子程序(可能因为在给定步中材料属性不会改变),积分点将使用f i的差值——通常,这些差值f i是分配给节点的最初值——假如没有明确给定最初值,在Abaqus会默认为0

——当定义材料属性时使用差值,很可能会造成不正确的结果。确保你知道Abaqus在干什么。

·可以使用输出变量FV分别在*EL PRINT、*EL FILE与*ELEMENT OUTPUT选项上将单元积分点上f i的值输出到.dat文件、.file文件与.odb文件

——ABAQUS/Viewer能够绘制FV#的轮廓图

访问积分点上的计算数据

·ABAQUS/Standard允许定义f i为积分点上计算数据的函数,如应力、应变

·这些提供的计算数据值是从当前增量的开始

·子程序USDFLD必须能够使用ABAQUS实用程序GETVRM来访问材料积分点数据

显式方法vs. 隐式方法

·既然USDFLD子程序只有在增量步开始访问材料积分点值,以这种方式介绍的解决方案是显式的——在给定增量下材料属性不受此增量内结果的影响

——因此,结果的精度依赖于时间增量大小

——因此,用户能通过变量PNEWDT来控制USDFLD子程序中的时间增量

·对于大多数非线性材料行为(如,塑性)

ABAQUS/Standard在当前增量步结束时将使用隐式积分方法来计算材料属性

——这种隐式积分方法使得ABAQUS/Standard可以使用任何时间增量,然而依然是有条件的

使用解相关的状态变量(Solution-Dependent State Variables,SDVs)

·如果f i有任何历史依赖性,在USDFLD中必须使用SDVs

——ABAQUS/Standard不会在USDFLD中存储f i的值

·将在USDFLD中更新的SDVs传递到在积分点处被调用的其他用户子程序,例如列在p. L4.5中的变量(Defining Field-Variable-Dependent Material Properties)

·用*DEPV AR选项来指定状态变量的数目

用户子程序GETVRM

子程序GETVRM提供给USDFLD用来访问分析过程中存储在数据库中的计算数据

GETVRM子程序界面

CALL GETVRM(?V AR‘, ARRAY, JARRAY, FLGRAY, JRCD,

1 JMAC, JMA TYP, MATLAYO, LACCFLA)

提供给GETVRM的变量

·提供给GETVRM的变量是输出变量关键,V AR,对于想要的计算结果数据,与JMAC,JAMTYP,MA TLAYO,LACCFLA(在这些笔记中没有进一步讨论这些变量)

·这些可用的输出变量列在了输出列表中,ABAQUS/Standard User‘s Manual,Section 4.2.1 ——对于单元积分点处的结果文件输出,这些变量必须是可用的,例如,对于应力的米塞斯应力S

GETVRM返回的变量

·包含输出变量的独立浮点部分的数组(ARRAY)

·包含输出变量的独立整数值部分的数组(JARRAY)

·一个特征数组(FLGRAY)包含对应于各个部分的标志

——标志将包含YES,NO,或N/A(不适用)

·返回代码(JRCD),JRCD=0表明GETVRM没有遇到错误,然而值1表明这里有一个输出请求错误或者所有的输出变量部分都是0

·如下写出了请求变量的组分

——单个指标分量(与没有分量的请求)返回在位置1,2,3,etc

——对于对称张量按顺序11,22,33,12,13,23返回双指标分量(张量),对于非对称张量接着是21,31,32,例如变形梯度

——因此,对于平面应力单元,返回应力为ARRAY(1) = S11, ARRAY(2) = S22, ARRAY(3) = 0.0, and ARRAY(4) = S12.

——不管分析的维度,对于主值请求、最小值(第一)与最大值(第三)、,总要返回三个数值,

GETVRM所支持的单元

·既然GETVRM是关于积分点数值,对于不需要*MATERIAL定义的大部分单元类型是不适用的。

·因此,不支持以下单元类型:

DASHPOTx

SPRING x

JOINTC

JOINTxD

DRAGxD

ITS xxx

MASS

ROTARYI

all acoustic elements 所有声学单元

all contact elements 所有的接触单元

all gasket elements

all hydrostatic fluid elements 所有流体静力学单元

USA elements USA单元

USDFLD子程序界面

用户子程序USDFLD界面是

需定义的变量

·数组FIELD(NFIELD)包含当前积分点处的场变量f i

——传递当前增量步结束时从节点差值的数值,用*INITISL CONDITION选项与*FIELD选项来指定

——使用更新的f i来计算作为场变量函数的积分点数值。传递更新的f i进其他用户子程序(CREEP, HETV AL, UEXPAN, UHARD, UHYPEL, UMA T, UMATHT, and UTRS)

可能被定义的变量

·在USDFLD中能定义包含解相关状态变量的数组STA TEV(NSTA TV)

——传递这些,作为增量步开始时的值

——在所有的情况下子程序中能够更新STA TEV,更新后的值被传递到其他用户子程序中(CREEP, HETV AL, UEXPAN, UHARD, UHYPEL, UMA T, UMATHT, and UTRS)

——与积分点相联系的状态变量数目用*DEPV AR来定义

·给出了新建议时间增量与使用的时间增量(DTIME,如下)间的比值PNEWDT

——该变量允许用户提供输入到ABAQUS自动时间增量算法。

变量信息

·场变量(NFIELD)的数目存在在这点上

·在材料方向的全局坐标系统中方向余弦与当前积分点(DIRECT)相联系

——DIRECT(#,1)定义第一积分点方向

·方向余弦(T)

·模型中特征单元长度(CELENT)

·与*MATERIAL选项相联系的名字(CNAME)

·与单元相联系*ORIENTATION的名字(ORNAME)

·正应力分量的数目(NDI)、剪应力分量的数目(NSHR)

·分析步(KSTEP)与增量步数目(KINC),其中子程序被调用

·当前增量结束时的分析步时间值(TIME(1)),总时间值(TIME(2)

·当前时间增量(DTIME)

·单元数目(NOEL)与积分点数目(NPT)

·在适合时,层(LAYER)与界面点数目(KSPT)

·在积分点处坐标(COORD)

·必须传到GETVRM实用子程序的变量(JMAC, JMATYP, MA TLAYO, LACCFLA)

USDFLD与自动时间增量

·ABAQUS/Standard在分析中使用自动时间增量算法来控制时间增量大小

——当不可能收敛或结果不够准确时,此算法允许ABAQUS/Standard减少时间增量大小;当很容易收敛时,允许增加时间增量

·像USDFLD这样子程序能够使算法不正常工作

——因此,这些算法使用变量PNEWDT给增量算法提供信息

·在每次调用USDFLD前,将PNEWDT设定一个大值

·假如PNEWDT重新定义为小于1.0的数,ABAQUS将放弃时间增量,并用一个较小时间增量来再次试探——提供给自动时间算法的新建议时间增量是

PNEWDT?DTIME,

其中:所使用的PNEWDT是所有调用用户子程序中的最小值,用户子程序对于此次迭代允许重新定义PNEWDT ·假如对于此次迭代与增量收敛的所有调用用户子程序PNEWDT是一个给定的大于1.0的值,ABAQUS可能会增加时间增量

——提供给自动时间算法的新建议时间增量是

PNEWDT?DTIME,

——其中:所使用的PNEWDT是此次迭代中所有调用用户子程序中的最小值

·假如维持时间增量大小,设定PNEWDT=1.0

·假如对于分析程序没有选择自动时间增量,那将忽略大于1.0的PNEWDT的值,小于1.0的PNEWDT的值将会造成任务停止

实例:层状复合板失效

·ABAQUS Example Problems Manual, Section 1.1.14详细描述了此实例

·此实例对中间带有孔洞的层状复合板发生的损伤进行建模,它将承受面内压缩

——此板包含石墨环氧复合材料,每层内纤维方向是-45/45

·此问题中使用了四分之一对称有限元模型(如图4-1)

——使用了两层CSP4单元,而不是壳单元——板厚足够大,面外的位移可以忽略

材料模型

·Chang与Lessard详细描述了每层的材料行为

Chang, F-K., and L. B. Lessard, ―Damage Tolerance of Laminated Composites Containing an Open Hole and Subjected to Compressive Loadings: Part I—Analysis,‖ Journal of Composite Materials, vol. 25, pp. 2–43, 1991.

·最初的弹性特性是:

长度方向模量

宽度方向模量

剪切模量

泊松比

·材料计算剪切上的损伤,导致了非线性应力应变关系,形式为

其中:为最初的剪切模量,非线性用因子α=0.8×10?14来表示

·为了考虑非线性,非线性应力应变关系(等式4.1)需以不同形式来表示

在每个增量结束时的应力应该是应变的线性函数

·最明显的方式是对非线性项线性化,则

·对等式4.2进行转换,则

这就提供了一种定义等效剪切模量的算法

——然而,这种算法不是非常合适,因为在大应变水平下它是不稳定的,这通过稳定分析很容易证明(详见例子手册)

·为了获得一个更加稳定的算法,我们把非线性应力应变法则写成

其中:是一个未知系数

·对等式4.4表达式的稳定分析,优化的应力应变算法是:

以损伤参数d的形式进行表达,即

·将此关系实施到用户子程序USDFLD,直接将损伤参数值分配到用于定义弹性属性的第三场变量(FV3)

·对复合材料,使用下列强度性能:

横向拉伸强度

剪切强度

基体压缩强度

纤维屈曲强度

·将强度参数集合到多轴加载的失效准则中去。在分析模型中考虑了三种不同失效模型:——在模型中没有考虑纤维屈曲失效,因为主要失效模型是纤维-基体剪切

基体拉伸开裂

非线性剪切行为下基体拉伸开裂的失效指标是:

当此模型中复合材料失效,横向刚度与泊松比将变成0

基体压缩开裂

这种失效指标形式与拉伸开裂模型相同。在USDFLD中使用同样失效指标(场变量),因为两个模型不会在同一个点同时发生

纤维-基体剪切失效

从本质上失效准则与其他两种准则有相同形式:

这种失效机制可能与其他两种准则同时发生,因此,在USDFLD中使用了不同的失效指标

·使用用户子程序USDFLD来计算活跃的失效指标值

用于表征基体拉伸开裂/基体压缩失效指标的值e m存储为SDV(1)

——当指标超过了1.0时,f1设定为1.0

用于表征纤维——基体剪切失效指标的值e fs存储为SDV(2)

——当指标超过了1.0时,f2设定为1.0

·使用子程序USDFLD来计算在非线性应力应变关系中损伤参数d

——d值存储为SDV(3)与f3

·表4-1显示了依赖于的材料属性

部分输入数据

用户子程序

结果

备注

·并不是将失效指标值直接分配给f i,相反,它们被存储为解相关的状态变量

——即使失效指标值超过了1.0,相应的的用户定义场变量设定为1.0

——在失效指标值超过了1.0后,即使应力可能显著减少,相应的f i依然为1.0,这就确保了材料损伤后不会愈合

·应用USDFLD的材料模型确保,失效发生后,在失效方向上的应力立即变为0,这对应于没有能量吸收的脆性失效

·这种假设是非常不现实的:在现实中,失效发生后随着应变的增加应力承载能力逐渐退化——因此,使用这个模型并不能很好捕捉到失效开始后复合材料的行为

·此外,应力承载能力瞬间消失会使得失效后分析结果强烈依赖于有限单元网格的细化与所使用的有限单元网格

·在本例子中,模型中唯一显著非线性是复合材料的失效。因此,使用固定的时间增量非常有效——然而,分析结果对时间增量大小高度敏感。此模型中使用的时间增量显示,?t=0.05接近最大允许使用值(见图4-4与图4-5)

·如果在分析中呈现了另外的非线性,很有可能需要使用自动时间增量算法

——在这些分析类型中,在子程序USDFLD必须使用便利PNEWDT以控制时间增量大小

·

子程序手册 1.1.49 USDFLD: User subroutine to redefine field variables at a material point. Product: Abaqus/Standard

参考文献

?Section 2.1.6,在Abaqus/Standard分析中获得积分点信息(Obtaining material point information in an Abaqus/Standard analysis)

?Abaqus用户分析手册中Section 21.1.2,积分点数据定义(Material data definition)

?用户定义场(* USER DEFINED FIELD)

?Abaqus例子手册中Section 1.1.14,层状复合板的损伤与失效(Damage and failure of a laminated composite plate)?Abaqus验证手册中Section 4.1.24,USDFLD

概述

用户子程序USDFLD:

?允许你在积分点定义场变量作为事件或列在输出变量标识表中积分点变量的函数(Abaqus用户分析手册Section 4.2.1,Abaqus/Standard output variable identifiers),除了用户定义的输出变量UV ARM与UV ARM n

?使用它来引进解相关材料属性,既然能够轻易定义这些属性为场变量的函数

?对于积分点包含用户定义场变量的单元来说,在其所有积分点上都能够调用子程序

?必须调用实用程序GETVRM来访问积分点数据

?能够使用并更新场变量

?能够与用户子程序UFIELD一起使用来规定预定义场变量

明确的解依赖性

既然子程序只能在增量开始时访问积分点数据,以这种方式介绍的解依赖是明确的:在增量步中获得的结果不会影响给定增量下的材料性能。因此,结果的精度依赖于时间增量步的大小。因而,你可以通过变量PNEWDT来控制子程序中时间增量。

定义场变量

在调用用户子程序USDFLD之前,通过定义在节点上值差值方式来计算积分点上场变量的值。在用户子程序中场变量的任何改变局限于积分点:节点场变量保持最初状态、预定义场变量或在用户子程序USDFLD中的值。定义在子程序中场变量的值经常用来计算依赖于场变量的材料属性值,将它传递到能在物质点上调用的其他用户子程序中去,例如:

?CREEP

?HETV AL

?UEXPAN

?UHARD

?UHYPEL

?UMA T

?UMA THT

?UTRS

使用单元积分点输出变量FV来获得在材料点处用户定义场变量的输出(详见,Abaqus用户手册Section 4.2.1,Abaqus/Standard output variable identifiers)

访问材料点数据

在增量开始(或一个线性摄动分析步的基本状态中)通过实用子程序GETVRM来访问材料点数据(详见Section 2.1.6,Obtaining material point information in an Abaqus/Standard analysis)。通过以合适输出变量关键来调用GETVRM来获得材料点数值。以数组来恢复材料点数值,ARRAY, JARRAY ,and FLGRAY,分别代表浮点、整数与特征数。你并不能获得在增量开始时未定义的一些材料点值,例如:ER。

状态变量

既然在USDFLD中重新定义的场变量局限在当前增量步(将场变量恢复到每个增量开始时从节点差值得到的值),必须介绍通过使用这个子程序来更新材料属性的历史依赖性。

在USDFLD中能够更新状态变量,然后被传到能够在这个材料点调用的其他用户子程序中去,例如上面列举的子程序。你可以指定这些状态变量的数目,在本章末尾的例子中有说明(详见,用户分析手册Section 18.1.1,“Allocating space‖ in ―User subroutines:overview,‖)。

用户子程序界面

定义的变量

FIELD (NFIELD)

一个数组包含在当前材料点的场变量。用当前增量结束时从节点的差值来传递这些场变量,通过最初条件定义、预定义场变量定义,或用户子程序UFIELD。使用与温度差值相同的差值方法:对于线性单元使用平均值;对于二次单元使用近似线性变量(可以参考:Abaqus Analysis User‘s Manual,Section 28.1.1“Solid (continuum) elements‖)。使用更新数值来计算材料属性值,其材料属性依赖于场变量并被传递到在材料点调用的其他用户子程序(CREEP, HETV AL , UEXPAN , UHARD, UHYPEL , UMAT, UMATHT ,and UTRS)。

能够更新的变量

STA TEV (NSTA TV)

一个数组包含解相关变量。这些都是在增量开始时以数值传入的。在所有情况下,在子程序中能够更新STATEV,然后更新后的数值被传递到能够在材料点调用的其他用户子程序中去(CREEP, HETV AL , UEXPAN , UHARD, UHYPEL , UMA T, UMATHT ,and UTRS)。定义了与材料点相关的状态变量的数目,详见Abaqus用户分析手册Section

18.1.1 User subroutines: overview。

PNEWDT

PNEWDT指的是建议新的时间增量与所使用时间增量间的比例(DTIME,如下)。此变量能够允许你在Abaqus/Standard中对自动时间增量提供输入(假如选择了自动时间增量的话)。

在每次调用USDFLD之前,将PNEWDT设定为一个大数值

如果PNEWDT被重新定义为小于1.0的数,Abaqus/Standard必须舍弃时间增量,用一个更小时间增量再次尝试。提供给自动时间积分算法的建议新的时间增量是PNEWDT ×DTIME,其中PNEWDT是允许迭代中重新定义PNEWDT的所有调用用户子程序中最小值。

如果PNEWDT是调用用户子程序中一个给定大于1.0的值,Abaqus/Standard可能会增加时间增量。提供给自动时间积分算法的建议新的时间增量是PNEWDT × DTIME,其中PNEWDT是允许迭代中重新定义PNEWDT的所有调用用户子程序中最小值。

如果在分析程序中没有选择自动时间增量,将忽略大于1.0的PNEWDT,小于1.0的PNEWDT会造成任务停止。

传递信息的变量

DIRECT (3,3)

包含物质点关于全局方向的方向余弦的数组。DIRECT(1,1) , DIRECT(2,1) , DIRECT(3,1) 给出了第一材料方向上的(1, 2, 3)分量;DIRECT(1,2) , DIRECT(2,2) , DIRECT(3,2) 给出了第二材料方向,等等。对于壳单元与膜单元来说,前两个方向是在单元面内,第三个方向是法向。对于梁单元来说,这些都是不可用的。

T (3,3)

包含相对于单元基本方向的材料方向分量的方向余弦的数组。它定义了材料方向(DIRECT)关于单元基本方向的方向。对于连续单元来说,T与DIRECT是完全一致的。对于壳单元与膜单元,T1,1=cosθ,T1,2=?sinθ,T2,1=sinθ,T2,2=cosθ,T3,3=1.0,其余分量为0,其中θ为法向矢量逆时针旋转角度。如果没有使用方形,那么T是单位矩阵。方向并不适用于梁单元。

CELENT

特征单元长度。对于一阶单元来说,是沿单元一条线的长度;对于二阶单元来说,是同样典型长度的一半。对于梁与桁架,是沿单元轴的特征长度。对于膜与壳单元,它是参考面的特征长度。对于轴对称单元,它只是(r,z)平面内的特征长度。

TIME (1):在当前增量步开始时的分析步时间值

TIME (2):在当前增量步开始时总的时间值

DTIME:时间增量

CMNAME:用户指定的材料名称,左对齐

ORNAME:用户指定的局部方向名称,左对齐

NFIELD:定义在材料点的场变量的数目

NSTATV:用户定义的解依赖的状态变量(详见Abaqus用户分析手册Section 18.1.1 “Alloca ting space‖ in ―User subroutines: overview)

NOEL:单元数目

NPT:积分点数目

LA YER:层数(对于复合壳体与分层固体)

KSPT:当前层内截面点的数目

KSTEP:步数

KINC:增量数

NDI:此点法向应力分量的数目

NSHR:此点切向应力分量的数目

COORD:在材料点的坐标

JMAC:必须将变量传到GETVRM实用程序来访问输出变量

JMATYP:必须将变量传到GETVRM实用程序来访问输出变量

MATLA YO:必须将变量传到GETVRM实用程序来访问输出变量

LACCFLA:必须将变量传到GETVRM实用程序来访问输出变量

实例:损伤弹性模型

下面介绍一个用户子程序USDFLD的例子。在例子中,桁架单元承受拉应力。介绍了损伤弹性模型:模量随在加载历史中发生的最大拉应变的函数而减少。最大拉应变存储为解依赖的状态变量,详见Abaqus Analysis User‘s Manual Section 33.6.1,“Defining solution-dependent field variables‖ in ―Predefi ned fields‖

子程序手册 2.1.6 Obtaining material point information in an Abaqus/Standard analysis

在Abaqus/Standard分析中获得物质点信息

Product: Abaqus/Standard

参考文献

?“UV ARM,‖ Section 1.1.53

?“USDFLD,‖ Section 1.1.49

?“UDMGINI,‖ Section 1.1.25

?“Damage and failure of a laminated composite plate,‖ Section 1.1.14 of the Abaqus Example Problems Manual ?“USDFLD ,‖ Se ction 4.1.24 of the Abaqus Verification Manual

?“UV ARM,‖ Se ction 4.1.26 of the Abaqus Verification Manual

概述

从用户子程序UV ARM, UDMGINI或USDFLD中,调用GETVRM实用程序来访问材料积分点信息。

界面

DIMENSION ARRAY(15), JARRAY(15)

CHARACTER*3 FLGRAY(15)

...

CALL GETVRM('VAR',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,MA TLAYO,

LACCFLA)

提供给实用程序的变量

VAR

Abaqus用户分析手册Section 4.2.1,―Abaqus/Standard output variable identifiers‖,表格中有输出变量钥匙(output variable key)。在输出表格中列出了可应用的钥匙,对于单元积分点上结果输出结果是可行的,例如,对于应力是S。

JAMC

变量必须传递到GRTVRM实用程序中去。所调用的用户子程序提供了这个变量。

JMATYP

变量必须传递到GRTVRM实用程序中去。所调用的用户子程序提供了这个变量。

MATLA YO

变量必须传递到GRTVRM实用程序中去。所调用的用户子程序提供了这个变量。

LACCFLA

变量必须传递到GRTVRM实用程序中去。所调用的用户子程序提供了这个变量。

从实用程序中返回的变量

ARRAY

包含输出变量单独分量的实数组

JARRAY

包含输出变量单独分量的整数数组

FLGRAY

包含相对于独立分量的标志的特征数组。标志将包含YES, NO, or N/A (不可用).

JRCD

返回代码(0-无错误,1-输出请求错误或输出请求所有分量为0)

可用的输出变量钥匙

只有输出变量钥匙对结果文件输出是有效的,在使用GETVRM时它才是可用的。通常来说,假如一个钥匙对应于一个集体输出变量而不是一个单独分量,它可以使用GETVRM。例如,对于应力张量使用S,然而,任何一个单独的应力分量,假如说S11,这是不能使用的。集体输出变量钥匙是与单独分量是有区别的,在Abaqus用户分析手册Section 4.2.1,―Abaqus/Standard output variable identifiers‖的表格中,在.fil列中有一个圆点。在本章后面,将列出不能够使用GETVRM的输出变量钥匙。

将给你返回ARRAY、JARRAY、FLGRAY,分别相对应于实数分量、整数值分量、与V AR请求相关的标志。如果对于一个给定请求任何数组分量都不适用,它将返回初始值:ARRAY为0、JARRAY为0、FLGRAY为N/A。当任何时候不能识别请求钥匙,或请求是无效的(例如,对于使用薄壳理论的壳单元要求输出横向剪切应力)、或所有请求的输出分离是0,将从GETVRM返回JRCD=1。否则,JRCD=0

返回分量的顺序

下面写出了请求分量。以1,2,3等的位置返回单一指标分量(与没有分量的请求)。双指标返回顺序是:对于轴对称张量为11, 22, 33, 12, 13, 23;而对于非轴对称张量(变形梯度),紧接着21,31,32。因此,对于平面应力单元返回的应力为:ARRAY(1) =S11, ARRAY(2) =S22, ARRAY(3) =0.0, and ARRAY(4) =S12。不管分析的维度,对于主应力请求、最小值第一与最大值第三,这三个值总是返回。

输出变量的描述(详见Abaqus Analysis User‘s Manual Section 4.2.1,Abaqus/Standard output variable identifiers)决定了使用GETVRM恢复哪个分量。

返回值的分析时间

当使用实用程序GETVRM请求材料积分点值时,返回值的增量内的时间依赖于用户子程序调用它。GETVRM 在当前增量的结束时返回值到用户子程序UV ARM,然而GETVRM在当前增量的开始时返回值到用户子程序USDFLD

返回值的平衡状态

用户子程序UV ARM可以在每个增量内多次调用GETVRM,当Abaqus/Standard迭代到一个收敛解。对于此增量的最终迭代之前从GETVRM返回的值不会代表收敛结果

实例

为了说明GETVRM的使用,假如在连接材料中指定了PEQC,ARRAY将返回独立等效塑形应变分量PEQC1,PEQC2,PEQC3与PEQC4。既然没有与此标识相关的整数输出变量,JARRAY将返回默认值0。FLGRAY数组将

包含YES或NO标识,表明每个分量是否产生。如果对材料的塑性指定了标识PE,ARRAY将返回塑性应变分量PE11, PE22, PE33, PE12, PE13, PE23,等效塑形应变PEEQ,塑性应变大小PEMAG。既然没有与此请求相关的整数值,JARRAY将为0。FLGRAY数组,对于前六个分量含有N/A;对第七个分量(对应于PEEQ)是YES或NO,

说明材料当前是否产生;对第八个分量是N/A。如果指定了HFL,ARRAY将返回HFLM的大小与其分量HFL1, HFL2, and HFL3。详见Abaqus Analysis User‘s Manual Section 4.2.1:Abaqus/Standard output variable identifiers。

访问状态依赖变量

假如GETVRM访问了状态依赖变量(输出变量钥匙SDV)并且在分析中定义了超过15个状态依赖变量,那么必须改变ARRAY与JARRAY的维度状态,使得这些数组达到状态依赖变量的最大数目

不支持的单元类型、进程与输出变量钥匙

既然此功能涉及到物质点的值,因此对于并不需要材料定义的大部分单元类型并不适用。因此,不支持下列单元类型:

?DASHPOT x

?SPRING x

?CONN x D x

?FRAMEx D

?JOINTC

?JOINT x D

?DRAG x D

?PSI xx

?ITS xxx

?MASS

?ROTARYI

?all acoustic elements

?all contact elements

?all hydrostatic fluid elements

假如使用用户子程序UV ARM,此功能并不适用于线性摄动程序(见Abaqus Analysis User‘s Manual Sect ion6.1.3:General and linear perturbation procedures):

?static linea r perturbation analysis (―Defining an analysis,‖ Section 6.1.2 of the Abaqus Analysis User‘s Manual),?“Eigenvalue buckling prediction,‖ Section 6.2.3 of the Abaqus Analysis User‘s Manual,

?“Natural frequency extraction,‖ Section 6 .3.5 of the Abaqus Analysis User‘s Manual,

?“Transient modal dynamic analysis,‖ Sectio n 6.3.7 of the Abaqus Analysis User‘s Manual,

?“Mode-based steady-state dynamic analysis,‖ Section 6.3.8 of the Abaqus Analysis User‘s Manual,

?“Direct-solution steady-state d ynamic analysis,‖ Section 6.3.4 of the Abaqus Analysis User‘s Manual,

?“Subspace-based steady-st ate dynamic analysis, ‖ Section 6.3.9 of the Abaqus Analysis User‘s Manual, ?“Response spectrum analysis,‖ Section 6.3.10 of the Abaqus Analysis User‘s Manual, and

?“Random response analysis,‖ Section 6.3.11 of the Abaqus Analysis User‘s Manual.

下列输出变量钥匙并不适合使用GETVRM:

?SVOL

?TSHR

?CTSHR

?COORD

子程序手册 1.1.35 UHARD: User subroutine to define the yield surface size and hardening parameters for isotropic plasticity or combined hardening models.

概述

用户子程序UHARD:

?在所有单元的物质计算点被调用,对于金属塑性材料定义包括用户定义的各向同性硬化或循环硬化;

?能够用来定义材料的各向同性屈服行为;

?能够用来定义在组合硬化模型中的屈服面的大小

?可以包括依赖于场变量或状态变量的材料行为

?合适时,需要关于应变、应变率与温度来定义屈服应力派生品的值(或在组合硬化模型中的屈服面的大小)

用户子程序界面

被定义的变量

SYIELD

。各向同性塑性的屈服应力。对于组合硬化的屈服面大小

HARD (1)

SYIELD关于等效塑形应变的变化,

HARD (2)

SYIELD关于等效塑形应变率的变化,。此数量不会与组合硬化模型一起使用

HARD (3)

SYIELD关于温度的变化,。只有在绝热、完全耦合的温度-位移与热-电-结构分析中需要使用。

STATEV (NSTATV)

在某点上包含用户定义解依赖状态变量的数组。它们被应用作为增量开始时的数值,或其他用户子程序更新的值(详见Abaqus Analysis User‘s Manual,Section 18.1.1,User subroutines: overview),并且返回作为增量步结束时的值。

作为信息被传入的变量

EQPLAS

等效塑形应变,

EQPLASRT

等效塑形应变率,

TIME (1)

在当前增量步开始时,分析步的数值

TIME (2)

在当前增量步开始时,总时间的数值

DTIME

时间增量

TEMP

在增量开始时的温度

DTEMP

温度增量

NOEL

单元编号

NPT

积分点数目

LAYER

层数(对于复合壳体和层状固体)

KSPT

在当前层内截面点数目

KSTEP

分析步数目

KINC

增量步数目

CMNAME

用户指定的材料名称,左对齐

与材料相关联的解依赖状态变量的用户指定数目(详见Abaqus Analysis User‘s Manual,Section 18.1.1,User subroutines: overview)

NUMFIELDV

场变量的数目

PREDEF (NUMFIELDV)

增量步开始时在物质点上预定义场变量的插值数组,基于节点上读入的数值(分析开始时的最初值与分析中的当前值)

DPRED (NUMFIELDV)

对于此增量在物质点上的预定义场变量增量的数组,它包括用用户子程序USDFLD更新的任何值

NPROPS

用于此用户定义硬化而输入的硬化属性数目

PROPS (NPROPS)

用于此用户定义硬化而输入的硬化属性数组

分析手册3 21.1.2 Material Data Definition

Products: Abaqus/Standard Abaqus/Explicit Abaqus/CFD Abaqus/CAE

参考文献

?“Material library: overview,‖ Section 21.1.1

?“Combining material behaviors,‖ Section 21.1.3

?* MATERIAL

?“Creating materials,‖ Section 12.4.1 of the Abaqus/CAE User‘s Manual

综述

在Abaqus中材料的定义:

?指定材料行为,并提供所有相关属性数据

?能够包含多种材料行为

?应指定名字,用来说明有材料构成的模型的某部分

?应有温度与/或场变量依赖

?在Abaqus/Standard有解变量依赖

?在局部坐标系统下指定(见Section 2.2.5:Orientations),假如材料不是各向同性的,这是需要的

材料定义

在分析中可以定义任意数量的材料。每种材料定义能够包含任意数量的材料行为,根据需要,来指定完全的材料行为。例如,在线性静态应力分析中,只需要定义弹性材料行为,然而,在更加复杂的分析中可能需要几种材料行为。

必须对每种材料定义指定一个名字。这个名字允许参考材料,从用来分配材料的横截面定义到模型中的区域。

Input File Usage: *MATERIAL, NAME=name

在数据块中指定每种材料定义,通过*MATERIAL选项来开始。材料定义继续,直到介绍了一个不定义材料属性的选项(例如另一个*MATERIAL选项),在那一点上材料定义假定是完全的。材料属性选项定义顺序并不重要。在数据块内所有材料行为选项假定定义同一种材料。

Abaqus/CAE Usage: Property module(属性模型): material editor(编辑材料): Name

使用Material Options下的菜单栏来对材料添加属性

相关文档