abaqus1用户材料子程序

abaqus1用户材料子程序
abaqus1用户材料子程序

19 ABAQUS用户材料子程序(UMAT)

虽然ABAQUS为用户提供了大量的单元库和求解模型,使用户能够利用这些模型处理绝大多数的问题;但是现实世界毕竟十分复杂,ABAQUS不可能把所有可能出现的问题都包含进去。所以ABAQUS提供了大量的用户子程序(User Subroutine)。用户子程序允许用户在找不到合适模型的情况下自行定义符合自己问题的模型。这些用户子程序涵盖了建模从载荷到单元的几乎各个部分。

ABAQUS为用户提供的这个接口,允许用户通过自定义的子程序定制ABAQUS,以实现特定的功能。用户子程序具有以下的功能和特点:(1)如果ABAQUS的一些固有选项模型功能有限;用户子程序可以提高ABAQUS中这些选项的功能;(2)通常用户子程序是用FORTRAN语言的代码写成;(3)它可以以几种不同的方式包含在模型中;(4)由于它们没有存储在restart文件中,如果需要的话,可以在重新开始运行时修改它;(5)在某些情况下它可以利用ABAQUS允许的已有程序。

要在模型中包含用户子程序,可以利用ABAQUS执行程序,在abaqus执行程序中应用user选项指明包含这些子程序的FORTRAN源程序或者目标程序的名字。

提示:ABAQUS的输入文件除了可以通过ABAQUS/CAE的作业模块中提交运行外,还可以在ABAQUS Command窗口中输入ABAQUS执行程序直接运行:

ABAQUS job=输入文件名 user=用户子程序的Fortran文件名

ABAQUS/Standard和ABAQUS/Explicit都支持用户子程序功能,但是他们所支持的用户子程序种类不尽相同,读者在需要使用时请注意查询手册。

在接下来的最后两章里,我们将讨论两种常用的用户子程序——用户材料子程序和用户单元子程序。

本章将通过在ABAQUS/Standard中创建Johnson-Cook的材料模型,对编写Standard 的用户材料子程序UMAT进行一个简单介绍。ABAQUS/Explicit中的用户材料子程序VUMAT的思想与之相似,但是由于隐式和显式两种方法本身的差异,它们之间也有一些不同,请读者在自己具体使用前首先仔细查阅ABAQUS手册中的相关内容。

18.1 引言

用户材料子程序是ABAQUS 提供给用户自的定义材料属性的Fortran 程序接口,它使用户能使用ABAQUS 材料库中没有的材料模型。ABAQUS 中自有的Johnson-Cook 模型只能应用于显式ABAQUS/Explicit 程序中,而我们希望能在隐式ABAQUS/Standard 程序中更精确的实现本构积分,而且应用Johnson-Cook 模型的修正形式。这就需要通过ABAQUS/Standard 的用户材料子程序UMAT 编程实现。在UMAT 编程中使用了率相关塑性理论以及完全隐式的应力更新算法。

18.2 模型的数学描述

18.2.1 Johnson-Cook 强化模型简介

Johnson-Cook 模型用来模拟在冲击载荷作用下的变形。

Johnson-Cook 强化模型(JC )表示为三项的乘积,分别反映了应变硬化、应变率硬化和温度软化。这里使用JC 模型的修正形式:

()()*01ln 11n m

A B C T εσεε???

?=+++

-?? ????

??

?

(19-1)

模型中包含,,,,A B n C m 五个参数,需要通过实验来确定。使参考应变率01ε

= ,这样公式中的A 即为材料的静态屈服应力。公式中的*

T 为无量纲化的温度

*r m r

T T T T T -=

- 其中r T 为室温,m T 为材料的熔点。Johnson-Cook 模型在温度从室温到材料熔点温度的范围内都是有效的。

高应变率的变形经常伴有温升现象,这是因为材料变形过程中塑性功转化为热量。对于大多数金属,90-100%的塑性变形将耗散为热量。所以JC 模型中温度的变化可以

用如下的公式计算:

()T d c α

σεερ?=

?

(19-2)

其中,T ?为温度的增量,α为塑性耗散比,表示塑性功转化为热量的比例,c 为材料的比热,ρ为材料的密度。公式(19-2)考虑的是一个绝热过程,即认为温度的升高完全起因于塑性耗散。

18.2.2 率相关塑性的基本公式

Johnson-Cook 本构模型考虑率相关塑性,塑性变形是关联的,即塑性流动沿着屈服面的法线方向,并采用Mises 屈服面。

将应变的增量分解为弹性部分和塑性部分:

p

e d d d εεε+= (19-3)

将上式两端同时对时间的增量dt 微分得到率形式:

p e εεε

+= (19-4)

在率相关塑性中,材料的塑性反应取决于加载率,以率的形式给出材料的弹性反应:

)(p e E E εεεσ

-== (19-5)

为了发生塑性变形,率相关塑性必须满足或者超过屈服条件,塑性应变率为:

p ε

λσ

?ψ=? ,λε= ,σσα'=-,σ'ψ= (19-6)

上式即为流动法则,其中ψ为塑性流动势能,λ

为塑性率参数,α为运动硬化时的背应力。

对于各项同性硬化,不存在背应力,因此有0α=,此时有: ()sign σσσψ==

(19-7)

()p sign σε

λλε

σσσ

??ψ===?? (19-8)

与率无关塑性不同的是,率相关塑性中等效塑性应变率不能通过一致性条件获得,而是直接通过经验定律给出,成为过应力模型:

η

αεσφε

)

,,(= (19-9)

式中φ是过应力,η为粘性。在过应力模型中,等效塑性应变率取决于超过了多少屈服应力。

上面一维的率相关塑性公式可以很方便地推广到三维情况。对于小应变的情形,应力度量之间无需区分,这里采用Cauchy 应力σ,塑性率参数由应力和内变量的经验函数给出。对照一维情况,三维情况下分解应变率为弹性和塑性部分:

e p

=+εεε (19-10)

应力率和弹性应变率之间的关系为:

()::e p ==-σ

C εC εε (19-11)

塑性流动法则和内变量的演化方程为:

(),p λ=ε

r σq ,λ=q h (19-12)

塑性率参数为:

()

,φλ

η

=σq (19-13)

对于J2流动理论,Perzyna (1971)中提出了典型的过应力模型为:

()

()

1n

Y Y σφσεσε=-

(19-14)

式中

为Macualay 括号,如果0

f >,则f f =;如果0f

≤,则0f =。σ为

Mises 等效应力,ε为等效应变,n 为率敏感系数。

对于Johnson-Cook 模型,可以得到等效塑性应变率的表达式为:

()01exp 11C σεσε??

??=--?? ? ?

??????

(19-15)

其中0σ为静态屈服应力:

0n A B σε=+

(19-16)

18.2.3 完全隐式的应力更新算法

对率形式的本构方程进行积分的算法称为应力更新算法。在完全隐式的算法中,在步骤结束时计算塑性应变和内变量的增量,同时强化屈服条件。积分算法写为:

1n n +=+?εεε

(19-17a)

111

p p

n n n n λ+++=+?r εε (19-17b) 111p p

n n n n λ+++=+?q q h (19-17c) ()111:p n n n +++=-σC εε

(19-17d)

()111,0n n n f f +++==σq

(19-17e)

在时刻n 给出一组()

,,p

n n n εεq 和应变增量?ε,公式(19-17)是一组关于求解

()1

11,,p n n n +++ε

εq 的非线性代数方程。

将公式(19-17b )代入(19-17d )得到:

()

()()()11111

1

11111

:::::::::p p

n n n n p p p p

n n n n n n p

n n trail p trail

n n n n n λ+++++++++++=--?=+?--?=-+?-?=+?-?=-?=-?σC εεεC εεεεC εεC εC εσC εC ε

σC εσC r (19-18)

式中1:trail n n +=+?σσC ε是弹性预测的试应力,而数值11:n n λ++-?C r 是塑性修正量,它沿着结束点塑性流动的方向。对于J 2流动理论,塑性流动的方向为:

32dev σ

=σr

(19-19)

它是屈服面的法向,即f =σr 。在偏应力空间,V on Mises 屈服面为环状,所以屈服面的法向通过圆心,如图19-1所示:

图19-1 径向返回算法

从图19-1可以看出,在弹性预测阶段,塑性应变和内变量保持固定;而在塑性修正阶段,总体应变保持不变。

在迭代开始时,程序对应力和应变设初始值:

()

0p p

n

ε,()0n εε=,()00λ?=,()()()

001:p n +=-σC εε (19-20)

应力在第k 次迭代时为:

()()()()0:k k k λ=-?σσC r

(19-21)

定义屈服面的单位法向矢量为:

()()

000

0//dev

dev

==^

n r r

σ

σ

,()

0=r

(19-22)

且在整个算法的塑性修正状态过程中始终保持不变,因此塑性应变的更新是λ?的线性函数。

在k 次迭代时将检查屈服条件:

()()()()()()()()()

03k k k k k Y Y f σσεσμλσε=-=-?-

(19-23)

若收敛,则迭代完毕,增量步结束。否则将计算塑性参数的增量:

()()()()()()()

33k

k

Y

k

k H

σμλσεδλμ-?-=

+

(19-24)

并对塑性应变和内变量进一步更新: 00/dev

dev

=^

n σ

σ

,()

(

p k k δλ

?=-^

ε

,()()k k εδλ?= (19-25a)

()()()1p k p k p k +=+?εεε

(19-25b)

()

()

(

)()

()

()

(

111:2k p k k k k k n μδλ

+++=-=+?=-^

σ

C εε

σ

σ

σ (19-25c)

()()()1k k k εεδλ+=+

(19-25d)

()()()1k k k λλδλ+?=?+

(19-25e)

然后将更新的变量返回屈服条件进行检查,整个过程将重复直至收敛为止。这就是增量步中应力更新的过程。

18.3 ABAQUS 用户材料子程序

用户材料子程序(User-defined Material Mechanical Behavior ,简称UMAT )通过与ABAQUS 主求解程序的接口实现与ABAQUS 的数据交流。在输入文件中,使用关键字“*USER MATERIAL ”表示定义用户材料属性。

18.3.1 子程序概况与接口

UMAT 子程序具有强大的功能,使用UMAT 子程序:

(1) 可以定义材料的本构关系,使用ABAQUS 材料库中没有包含的材料进行计

算,扩充程序功能。

(2)几乎可以用于力学行为分析的任何分析过程,几乎可以把用户材料属性赋予

ABAQUS中的任何单元;

(3)必须在UMAT中提供材料本构模型的雅可比(Jacobian)矩阵,即应力增量

对应变增量的变化率。

(4)可以和用户子程序“USDFLD”联合使用,通过“USDFLD”重新定义单元

每一物质点上传递到UMAT中场变量的数值。

由于主程序与UMAT之间存在数据传递,甚至共用一些变量,因此必须遵守有关UMAT的书写格式,UMAT中常用的变量在文件开头予以定义,通常格式为:

SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,

1 RPL,DDSDDT,DRPLDE,DRPLDT,

2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,

3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,

4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)

C

INCLUDE 'ABA_PARAM.INC'

C

CHARACTER*80 CMNAME

DIMENSION STRESS(NTENS),STATEV(NSTATV),

1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),

2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),

3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3) user coding to define DDSDDE, STRESS, STATEV, SSE, SPD, SCD and, if necessary, RPL, DDSDDT, DRPLDE, DRPLDT, PNEWDT

RETURN

END

UMAT中的应力矩阵、应变矩阵以及矩阵DDSDDE,DDSDDT,DRPLDE等,都是直接分量存储在前,剪切分量存储在后。直接分量有NDI个,剪切分量有NSHR 个。各分量之间的顺序根据单元自由度的不同有一些差异,所以编写UMAT时要考虑到所使用单元的类别。下面对UMAT中用到的一些变量进行说明:

(),DDSDDE NTENS NTENS

是一个NTENS 维的方阵,称作雅可比矩阵,即/????σε,?σ是应力的增量,?ε是应变的增量,(),DDSDDE I J 表示增量步结束时第J 个应变分量的改变引起的第I 个应力分量的变化。通常雅可比是一个对称矩阵,除非在“*USER MATERIAL ”语句中加入了“UNSYMM ”参数。

()STRESS NTENS

应力张量矩阵,对应NDI 个直接分量和NSHR 个剪切分量。在增量步的开始,应力张量矩阵中的数值通过UMAT 和主程序之间的接口传递到UMAT 中;在增量步的结束,UMAT 将对应力张量矩阵更新。对于包含刚体转动的有限应变问题,一个增量步调用UMAT 之前就已经对应力张量的进行了刚体转动,因此在UMAT 中只需处理应力张量的共旋部分。UMAT 中应力张量的度量为柯西(真实)应力。

()STATEV NSTATEV

用于存储状态变量的矩阵,在增量步开始时将数值传递到UMAT 中。也可在子程序USDFLD 或UEXPAN 中先更新数据,然后在增量步开始时将更新后的数据传递到UMAT 中。在增量步结束时必须更新状态变量矩阵中的数据。

和应力张量矩阵不同的是:对于有限应变问题,除了材料本构行为引起的数据更新以外,状态变量矩阵中的任何矢量或者张量都必须通过旋转来考虑材料的刚体运动。

NSTATEV

状态变量矩阵的维数,等于关键字“*DEPVAR ”中定义的数值。状态变量矩阵的维数通过ABAQUS 输入文件中的关键字“*DEPVAR ”定义,关键字下面数据行的数值即为状态变量矩阵的维数。

NPROPS

材料常数的个数,等于关键字“*USER MATERIAL ”中“CONSTANTS ”常数设定的值。

()

PROPS NPROPS

材料常数矩阵,矩阵中元素的数值对应于关键字“*USER MATERIAL”下面的数据行。

SSE,SPD,SCD

分别定义每一增量步的弹性应变能,塑性耗散和蠕变耗散。它们对计算结果没有影响,仅仅作为能量输出。

其他变量:

()

STRAN NTENS:应变矩阵

()

DSTRAN NTENS:应变增量矩阵

DTIME:增量步的时间增量

NDI:直接应力分量的个数

NSHR:剪切应力分量的个数

=+

NTENS:总应力分量的个数,NTENS NDI NSHR

使用UMAT时需要注意单元的沙漏控制刚度和横向剪切刚度。通常减缩积分单元的沙漏控制刚度和板、壳、梁单元的横向剪切刚度是通过材料属性中的弹性性质定义的。这些刚度基于材料初始剪切模量的值,通常在材料定义中通过“*ELASTIC”选项定义。但是使用UMAT时,ABAQUS对程序输入文件进行预处理的时候得不到剪切模量的数值。所以这时候用户必须使用“*HOURGLASS STIFFNESS”选项来定义具有沙漏模式的单元的沙漏控制刚度,使用“*TRANSVERSE SHEAR STIFFNESS”选项来定义板、壳、梁单元的横向剪切刚度。

18.3.2 编程

基于上面所述的率相关材料公式和应力更新算法,参照ABAQUS用户材料子程序的接口规范,进行UMAT的编程。有限元模拟结果将在下一节给出,在最后一节中还给出了相应的程序源代码。

由于UMAT在单元的积分点上调用,增量步开始时,主程序路径将通过UMAT的

接口进入UMAT,单元当前积分点必要变量的初始值将随之传递给UMAT的相应变量。在UMAT结束时,变量的更新值将通过接口返回主程序。整个UMAT的流程如图19-2所示:

图19-2 UMAT流程图

一共有8个材料常数需要给定,并申请了一个13维的状态变量矩阵,它们表示的物理含义如表19-1所示:

表19-1 UMAT材料常数

下一步将使用建立的UMAT结合ABAQUS/Standard进行SHPB实验的有限元模拟,并对结果进行比较。

18.4 SHPB实验的有限元模拟

下面将建立SHPB实验的有限元模型,并把前面所建立的UMAT接入ABAQUS/Standard进行有限元模拟。进行有限元模拟的目的不是单纯为了再现SHPB实验的过程,同时也是为了对选择的数值模型和建立的UMAT进行评价。

18.4.1 分离式Hopkinson压杆(SHPB)实验

分离式Hopkinson压杆(Split Hopkinson Pressure Bar,简称SHPB)实验是从经典Hopkinson实验基础之上发展而来的一种实验技术,用来测量材料的动态应力-应变行为。该实验技术的理论基础是一维应力波理论,通过测量两根压杆上的应变来推导试件上的应力-应变关系。

分离式Hopkinson压杆实验示意图见图19-3。

图19-3 分离式Hopkinson压杆装置

18.4.2 有限元建模

有限元模型主要是参照前面介绍的SHPB实验装置,通过载荷、边界条件等的定义在有限元中模拟SHPB实验的环境,尽量在较少的机时耗费下达到更高的精度。

模型的简化与有限元网格

为了不使模型过于庞大,对模型进行了一些简化。首先,改变入力杆和出力杆的尺寸,长度由原来的3040mm减小为1000mm,直径增加到25mm,试件的长度和直径也分别变化为22mm和18mm。这样不仅优化了网格的质量,还成倍地减小了模型的规模,其带来的负面影响就是试件能达到的应变将降低。另外,由于撞击杆仅仅起到产生应力脉冲的作用,在数值模型中没必要考虑撞击杆,取代的方法是直接在入力杆的输入端施加均布的应力脉冲。

考虑到实验装置的对称性,也做了一些简化。整个实验装置以及载荷等都是关于杆的中心线轴对称的,所以可以使用轴对称单元进行二维分析。另外也建立了四分之一横截面的三维模型作为补充。

二维轴对称模型和三维模型分别如图19-4、图19-5所示。在模型中,对试件以及入力杆,出力杆和试件接触的部分进行了局部网格加密,这样的网格划分可以取得比较经济的结果。

图19-4 二维轴对称有限元模型

图19-5 三维有限元模型

单元类型上,选择一阶常规单元,由于没有使用减缩积分单元,所以使用UMAT 时无需指定单元的沙漏控制刚度。最后的模型中,二维网格单元总数为1220,三维模型网格的单元总数为17160。关于单元的详细信息如表19-2所示。

表19-2 模型信息

在二维模型局部网格存在疏密连接的部位,一个单元边要同时和两个单元连接,这在通常的有限元网格中是不好实现的。本例在这里使用了ABAQUS的多点约束技术(Multi-Points Constrain,简称MPC)来解决,线性多点约束方式如图19-6所示:

图19-6 线性多点约束技术

图中p点使用线性多点约束后,其节点自由度均由旁边的节点a和b线性插值得到。所以使用多点约束方式可以很好连接模型中网格疏密不同的部位,划分出比较精练的网格。

材料定义

入力杆和出力杆使用线弹性材料,弹性模量和泊松比分别为200GPa和0.3,密度为7.85×103 kg/m3。试件采用用户在UMAT中的自定义材料,材料参数如表19-3所示,其中Johnson-Cook模型中参数的数值来源于对实验数据的拟合。

表19-3 试件的材料定义

边界条件

为了保证SHPB 实验的要求,在二维模型和三维模型中均施加了必要的边界条件。在对称轴或对称面上施加了对称性边界条件,同时保证压杆和试件可以沿轴线方向自由无约束的运动。压杆和试件之间的接触为硬接触,光滑无摩擦。

为了确定输入应力脉冲的时间,进行了简单的计算。弹性材料中纵波波速的计算公式为:

d C =

(19-26)

其中E 为材料弹性模量,ρ为材料密度。由此可以计算输入应力波在压杆中的传播速度为5048d C =m/s 。

要求在入力杆应力波的输入端不能出现入射波和反射波的重叠,也就是说在输入应力脉冲的时间内,应力波的传播距离不应超过两倍的杆长,即:

422

4.010()5048

s d L T s C -<

=? (19-27)

根据这一估计,选择输入应力脉冲的持续时间42.010s T -=?s ,上升时间

53.010r t -=?s 。

经过若干次试算,对输入应力脉冲的波形进行了适当的调整,使试件中产生较均匀的应变率。最后输入应力脉冲的波形如图19-7所示:

为了确定增量步的最大时间步长,需要先简单计算一下单元的稳定极限。基于一个单元的估算,稳定极限可以用单元特征长度e

L 和材料波速d C 定义如下:

e

stable

d

L t C ?= (18-28)

应 力 (M P a )

时 间 (s)

图19-7 输入应力脉冲

压杆单元的特征单元长度L e = 10 mm ,由此可以计算出应力波在压杆传递的稳定极限为

6100.2-?=?stable t (s)

(19-29)

将它作为ABAQUS 自动增量控制里面的最大时间步长。

18.4.3 二维动态分析

下面将讨论二维动态分析的结果。为了便于比较,进行了三大类的分析,首先是无温度影响时的强化模型,然后是考虑温度影响的强化模型,最后是考虑单元失效的模型。 无温度影响强化模型分析

所进行的SHPB 实验正是属于这一情况,所以可以将ABAQUS/Standard 结合UMAT 进行有限元模拟的结果和实验数据进行对比。

下面是应变率250 s -1下的动态模拟过程。

在时间41.9810()t s -=?左右,应力波前沿到达试件,这一时间和前面使用弹性波波

速计算的传播时间是相同的,此前试件上的Mises 应力几乎为零,如图19-8所示。

图19-8 应力波前沿到达试件时的Mises 应力 (t=1.98×10-4 s)

在时间43.010()t s -=?,试件经过应力波的上升时间后达到稳定变形的状态,一部分入射波反射回入力杆,一部分应力波经过试件进入出力杆,试件各点的变形都很均匀,如图19-9 (a) 所示。在图19-9 (b) 试件的放大图上可以看出,各点Mises 应力相差不超过1MPa ,这个精度是相当可靠的。

(a) 全局视图

(b) 试件的放大视图

图19-9 试件经历均匀变形时的Mises 应力 (t=3.0×10-4 s)

经过稳定变形阶段后,反射波和传递波分别向入力杆和出力杆扩散,试件上Mises 应力逐渐减小到较低的水平,试件开始经历卸载,如图19-10所示。图中Mises 应力云图的单位为KPa ,如不作特别说明,下面各种应力云图中应力单位都为KPa 。

图19-10 应力波消退后试件时的Mises 应力 (t=4.2×10-4 s)

在离压杆两端0.2m 处各取一个单元作为输出,其应力历史如图19-11所示,从中可直观地看出压杆上应力的传播过程。

应 力 (M P a )

时 间 (s)

图19-11 压杆上的应力输出(实际输出)

取出试件同一横截面的三个单元以及试件表面长度方向的三个单元,将不同点的应力应变历史比较如下:

应 变

时间 (s)(a) 应 变历 史

应 力 (M P a )

时 间 (s)(b) 应 力 历 史

应 变率 (s -1)

时 间 (s)(c) 应 变率 历 史

图19-12 试件横截面应变、应力及应变率历史比较

ABAQUS子程序

Home 浅谈ABAQUS用户子程序 李青清华大学工程力学系 摘要本文首先概要介绍了ABAQUS的用户子程序和应用程序,然后从参数,功能两方面详细论述了DLOAD, UEXTERNALDB, URDFIL三个用户子程序和GETENVVAR,POSFIL,DBFILE三个应用程序,并详细介绍了ABAQUS的结果文件(.FIL)存储格式。 关键字ABAQUS,用户子程序,应用程序,结果文件 一、前言: ABAQUS为用户提供了强大而又灵活的用户子程序接口(USER SUBROUTINE)和应用程序接口(UTILITY ROUTINE)。ABAQUS 6.2.5一共有42个用户子程序接口,13个应用程序接口,用户可以定义包括边界条件、荷载条件、接触条件、材料特性以及利用用户子程序和其它应用软件进行数据交换等等。这些用户子程序接口使用户解决一些问题时有很大的灵活性,同时大大的扩充了ABAQUS的功能。例如:如果荷载条件是时间的函数,这在ABAQUS/CAE 和INPUT 文件中是难以实现的,但在用户子程序DLOAD中就很容易实现。 二.在ABAQUS中使用用户子程序 ABAQUS的用户子程序是根据ABAQUS提供的相应接口,按照FORTRAN语法用户自己编写的代码。在一个算例中,用户可以用到多个用户子程序,但必须把它们放在一个以.FOR为扩展名的文件中。运行带有用户子程序的算例时有两种方法,一是在CAE中运行,在EDIT JOB菜单的GENERAL子菜单的USER SUBROUTINE FILE对话框中选择用户子程序所在的文件即可;另外是在ABABQUS COMMAND用运行,语法如下: ABAQUS JOB=[JOB] USER?[.FOR]?C 用户在编写用户子程序时,要注意以下几点: 1.用户子程序不能嵌套。即任何用户子程序都不能调用任何其他用户子程

ABAQUS用户子程序

当用到某个用户子程序时,用户所关心的主要有两方面:一是ABAQUS提供的用户子程序的接口参数。有些参数是ABAQUS传到用户子程序中的,例如SUBROUTINE DLOAD中的KSTEP,KINC,COORDS;有些是需要用户自己定义的,例如F。二是ABAQUS何时调用该用户子程序,对于不同的用户子程序ABAQUS调用的时间是不同的。有些是在每个STEP的开始,有的是STEP结尾,有的是在每个INCREMENT的开始等等。当ABAQUS 调用用户子程序是,都会把当前的STEP和INCREMENT利用用户子程序的两个实参KSTEP和KINC传给用户子程序,用户可编个小程序把它们输出到外部文件中,这样对ABAQUS何时调用该用户子程序就会有更深的了解。 (子程序中很重要的就是要知道由abaqus提供的那些参量的意义,如下) 首先介绍几个子程序: 一.SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, JLTYP,SNAME) 参数: 1.F为用户定义的是每个积分点所作用的荷载的大小; 2.KSTEP,KINC为ABAQUS传到用户子程序当前的STEP和INCREMENT值;3.TIME(1),TIME(2)为当前STEP TIME和INCREMENT TIME的值;4.NOEL,NPT为积分点所在单元的编号和积分点的编号; 5.COORDS为当前积分点的坐标; 6.除F外,所有参数的值都是ABAQUS传到用户子程序中的。 功能: 1.荷载可以被定义为积分点坐标、时间、单元编号和单元节点编号的函数。 2.用户可以从其他程序的结果文件中进行相关操作来定义积分点F的大小。 例1:这个例子在每个积分点施加的荷载不仅是坐标的函数,而且是随STEP变化而变化的。SUBROUTINE DLOAD(P,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, 1 JLTYP,SNAME) INCLUDE 'ABA_PARAM.INC' C DIMENSION TIME(2),COORDS(3) CHARACTER*80 SNAME PARAMETER (PLOAD=100.E4) IF (KSTEP.EQ.1) THEN !当STEP=1时的荷载大小 P=PLOAD ELSE IF (KSTEP.EQ.2) THEN !当STEP=2时的荷载大小 P=COORDS(1)*PLOAD !施加在积分点的荷载P是坐标的函数 ELSE IF (KSTEP.EQ.3) THEN !当STEP=3时的荷载大小 P=COORDS(1)**2*PLOAD ELSE IF (KSTEP.EQ.4) THEN !当STEP=4时的荷载大小 P=COORDS(1)**3*PLOAD ELSE IF (KSTEP.EQ.5) THEN !当STEP=5时的荷载大小 P=COORDS(1)**4*PLOAD END IF RETURN END UMAT 子程序具有强大的功能,使用UMAT 子程序: (1) 可以定义材料的本构关系,使用ABAQUS 材料库中没有包含的材料进行计算,扩

abaqus UAMP用户子程序

Overview User subroutine UAMP: ?allows you to define the current value of an amplitude definition as a function of time; ?can be used to model control engineering aspects of your system when sensors are used (sensor values are from the beginning of the increment); ?can use a predefined number of state variables in their definition; and ?can optionally compute the derivatives and integrals of the amplitude function. Explicit solution dependence The solution dependence introduced in this user subroutine is explicit: all data passed in the subroutine for information or to be updated are values at the beginning of that increment. User subroutine interface SUBROUTINE UAMP( * ampName, time, ampValueOld, dt, nProps, props, nSvars, * svars, lFlagsInfo, * nSensor, sensorValues, sensorNames, jSensorLookUpTable, * AmpValueNew, * lFlagsDefine, * AmpDerivative, AmpSecDerivative, AmpIncIntegral, * AmpDoubleIntegral) C INCLUDE 'ABA_PARAM.INC' C time indices parameter (iStepTime = 1, * iTotalTime = 2, * nTime = 2) C flags passed in for information parameter (iInitialization = 1, * iRegularInc = 2, * iCuts = 3

abaqus安装方法详解

***防火墙英文存放位置及安装路径,系统组件…… 第一部分Abaqus的安装问题(不含子程序) 1)用虚拟光驱加载DVD2,安装Document,直接运行根目录下的setup.exe 即可,安装过程比较简单。 (完成1后不要急着安装啊!因为你需要做一些事情来使得你的电脑可以破解abaqus。做什么呢!需要做两项,分别是: 1.1.设置一个环境变量,变量名为:LM_LICENSE_FILE;变量值为:27011@127.0.0.1。 这个时候有人会问,这是咋回事啊!因该是27011@自己的电脑名称。 我要告诉你这个127.0.0.1就是指你的电脑。所以不用再写你的电脑名字了,要是万一你的电脑名字是汉语的,那么还不好使呢! 这个步骤的目的在于在你的电脑里面建立了一个解码系统,可以明目张胆地使用abaqus。 1.2.修改abaqus安装盘中SHooTERS文件夹中的abaqus69.dat,打开它,将“this_host”修改为127.0.0.1。保存。) 根据个人安装经验,上述方法有时可能会失效,自己调整如下。 因为我下载的版本的license文件第一行为:SERVER THIS_host ID=20111111 27011 而不是SERVER THIS_host ID=20111111 27003 第4步:变量名LM_LICENSE_FILE,值为27011@hostname (hostname为你的计算机名字) 第8步:27003@hostname 更改为27011@hostname (hostname为你的计算机名字) 2)设置环境变量:鼠标右键点击桌面“我的电脑”图标,通过路径“属性->高级->环境变量”,然后在系统变量栏新建一个环境变量,变量名LM_LICENSE_FILE,值为27011@hostname。(以前版本的为27003等现为27011,hostname为你的计算机名) 3)用虚拟光驱加载DVD1,先安装License,运行 X:\win86_32\license\Windows\Disk1\InstData\VM\install.exe。安装过程中可能需要输入你的计算机名,一般上一步环境变量设置好了就不用输入了,安装时选择“just install the licenseing utilities”。注意:如果你的计算机上还装有abaqus 的其他版本,6.10版本的license可能会与低版本的发生冲突,导致无法安装第7步的product,所以需要把其他版本的license停掉,这样就可以了;我是讲6.8完全卸载之后再安装的6.10。 (中间选择Abaqus web server,很快安装好后,最后得画面会出现一个URL,例如http:// hostname:2080/v6.9/。需要拷贝一下,或者抄写下来。)

ABAQUS子程序UMAT里弹塑本构的实现

前言 有限元法是工程中广泛使用的一种数值计算方法。它是力学、计算方法和计算机技术相结合的产物。在工程应用中,有限元法比其它数值分析方法更流行的一个重要原因在于:相对与其它数值分析方法,有限元法对边界的模拟更灵活,近似程度更高。所以,伴随着有限元理论以及计算机技术的发展,大有限元软件的应用证变得越来越普及。 ABAQUS软件一直以非线性有限元分析软件而闻名,这也是它和ANSYS,Nastran等软件的区别所在。非线性有限元分析的用处越来越大,因为在所用材料非常复杂很多情况下,用线性分析来近似已不再有效。比方说,一个复合材料就不能用传统的线性分析软件包进行分析。任何与时间有关联,有较大位移量的情况都不能用线性分析法来处理。多年前,虽然非线性分析能更适合、更准确的处理问题,但是由于当时计算设备的能力不够强大、非线性分析软件包线性分析功能不够健全,所以通常采用线性处理的方法。 这种情况已经得到了极大的改善,计算设备的能力变得更加强大、类似ABAQUS这样的产品功能日臻完善,应用日益广泛。 非线性有限元分析在各个制造行业得到了广泛应用,有不少大型用户。航空航天业一直是非线性有限元分析的大客户,一个重要原因是大量使用复合材料。新一代波音 787客机将全部采用复合材料。只有像 ABAQUS这样的软件,才能分析包括多个子系统的产品耐久性能。在汽车业,用线性有限元分析来做四轮耐久性分析不可能得到足够准确的结果。分析汽车的整体和各个子系统的性能要求(如悬挂系统等)需要进行非线性分析。在土木工程业, ABAQUS能处理包括混凝土静动力开裂分析以及沥青混凝土方面的静动力分析,还能处理高度复杂非线性材料的损伤和断裂问题,这对于大型桥梁结构,高层建筑的结构分析非常有效。 瞬态、大变形、高级材料的碰撞问题必须用非线性有限元分析来计算。线性分析在这种情况下是不适用的。以往有一些专门的软件来分析碰撞问题,但现在ABAQUS在通用有限元软件包就能解决这些问题。所以,ABAQUS可以在一个软件完成线性和非线性分析。 ABAQUS给用户提供了强大二次开发接口,尤其是在材料本构方面,给用户开发符合实际工程的材料本构模型提供了强大帮助,本文将针对其用户材料子程序展开研究,总结常用材料模型的开发方法。

abaqus子程序安装方法

ABAQUS6.9 用户子程序全部通过的安装方法 ABAQUS6.9子程序全部通过的安装方法 “Abaqus6.9”+ “Microsoft Visual C++ 2005 Express” + “Intel Fortran10.1”! 参考许多前人经验和帖子,整理出本文,共分三部分介绍: 第一部分:不使用子程序的用户按此即可完成ABAQUS安装; 第二部分:需使用子程序的用户,先按第一部分安装,再按第二部分安装; 最后一部分结合自己的实践谈几点注意的事项。 第一部分Abaqus6.9的安装步骤 1、建议安装顺序为:先DVD2, 再DVD1中的lisence. (因为安装DVD1 product 时,需要一个安装好html document的地址)。 2、先安装DVD2, (要输入计算机名hostname),最后得画面会出现一个URL,需要记下来。(我的是http://xumeng861:2080/v6.9) 3、鼠标右键点击桌面“我的电脑”图标,通过路径“属性->高级->环境变量”(环境变量分为用户变量和系统变量两种),然后在系统变量栏新建一个系统变量,变量名 LM_LICENSE_FILE,值为27003@hostname (例如:27003@xumeng861)。 4、再打开DVD1,安装license,在安装DVD1的时候,会选择安装license还是product. 第一步先选择license,(对于常用的win 7系统,打开安装文件的文件夹,假设虚拟光盘为F盘,则F:\ABAQUS6.9\win86_32\license\Windows\Disk1\InstData\VM\install..exe, 应用兼容模式运行--- 即右击install.exe—属性--兼容性—勾选“以兼容模式运行这个程序”—选择windows XP (service Pack 3)。)在安装好之后,进行license设置。 5、打开DVD1,然后打开SHOOTERS文件夹,将abaqus69.dat文件用记事本打开,"this_host" 替换为计算机名,改好的文件另存为硬盘C:\SIMULIA\License\license.dat(把abaqus69.dat改为license.dat似乎也影响到子程序通过) 6、在开始-程序菜单中运行Abaqus licensing/Licensing utilities, 并设置: 进入config service选项卡- Service name 中输入Flexlm Service 1(名字可以随意输入) - Path to the lmgrd.exe file:C:\SIMULIA\License\lmgrd.exe; - Path to the license file:C:\SIMULIA\License\license.dat (注:步骤5中建立好的文件)

abaqus简单umat子程序

SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,RPL,DDSDDT, 1 DRPLDE,DRPLDT,STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED, 2 CMNAME,NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT, 3 PNEWDT,CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC) include 'aba_param.inc' CHARACTER*8 CMNAME DIMENSION STRESS(NTENS),STATEV(NSTATV),DDSDDE(NTENS,NTENS), 1 DDSDDT(NTENS),DRPLDE(NTENS),STRAN(NTENS),DSTRAN(NTENS), 2 TIME(2),PREDEF(1),DPRED(1),PROPS(NPROPS),COORDS(3),DROT(3,3), 3 DFGRD0(3,3),DFGRD1(3,3) C UMAT FOR ISOTROPIC ELASTICITY C CANNOT BE USE D FOR PLAN E STRESS C ---------------------------------------------------------------- C PROPS(1) - E C PROPS(2) - NU C ---------------------------------------------------------------- C IF (NDI.NE.3) THEN WRITE (*,*) 'THIS UMAT MAY ONLY BE USED FOR ELEMENTS 1 WITH THREE DIRECT STRESS COMPONENTS' CALL XIT ENDIF open(400,file='D:\test.txt') C ELASTIC PROPERTIES EMOD=PROPS(1) ENU=PROPS(2) EBULK3=EMOD/(1-2*ENU) EG2=EMOD/(1+ENU) EG=EG2/2 EG3=3*EG ELAM=(EBULK3-EG2)/3 write(400,*) 'temp=',temp C ELASTIC STIFFNESS C DO K1=1, NDI DO K2=1, NDI DDSDDE(K2, K1)=ELAM END DO DDSDDE(K1, K1)=EG2+ELAM

配置abaqus子程序的方法

安装VS+IVF+ABAQUS 第一步:::找到IVF初始化文件及其绝对路径(X:\是所在盘符,x是IVF版本相关的数字) IVF 10.x都是X:\...\Intel\Compiler\10.x\xxx\bin\ifortvars.bat IVF 11.x32位系 统是X:\...\Intel\Compiler\11.x\xxx\bin\ia32\ifortvars_ia32.bat intel64位系统 是X:\...\Intel\Compiler\11.x\xxx\bin\intel64\ifortvars_intel64.bat (注意64位是分intel64位和AMD64位,根据机器情况选择软件版本,Abaqus 也是如此,我只用过所以也只讨论intel64) 再找到已安装的Abaqus所在文件夹下的Commands文件夹中的 abq6XXX.bat文件,右键编辑打开它,在@echo off下插入下面这行命令(以32位系统IVF11.x为例) @call "X:\...\Intel\Compiler\11.x\xxx\bin\ia32\ifortvars_ia32.bat" 保存关闭abq6XXX.bat文件。 第二步::在开始菜单的Abaqus文件夹中找到Abaqus Verification快捷方式,点击它进行验证。 我的配置:VS2013+IVF2013 SP1 update3+ABAQUS 6.14.1 将aba6141.bat 文件中改为:

@echo off call "C:\Program Files (x86)\Intel\Composer XE 2013 SP1\bin\ifortvars.bat" intel64 vs2013 "G:\SIMULIA\Abaqus\6.14-1\code\bin\abq6141.exe" %*

ABAQUS用户子程序

ABAQUS用户子程序 转自https://www.360docs.net/doc/903790579.html, 当用到某个用户子程序时,用户所关心的主要有两方面:一是ABAQUS提供的用户子程序的接口参数。有些参数是ABAQUS传到用户子程序中的,例如SUBROUTINE DLOAD中的KSTEP,KINC,COORDS;有些是需要用户自己定义的,例如F。二是ABAQUS何时调用该用户子程序,对于不同的用户子程序ABAQUS调用的时间是不同的。有些是在每个STEP的开始,有的是STEP结尾,有的是在每个INCREMENT的开始等等。当ABAQUS调用用户子程序是,都会把当前的STEP和INCREMENT利用用户子程序的两个实参KSTEP和KINC传给用户子程序,用户可编个小程序把它们输出到外部文件中,这样对ABAQUS何时调用该用户子程序就会有更深的了解。 (子程序中很重要的就是要知道由abaqus提供的那些参量的意义,如下) 首先介绍几个子程序: 一.SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, JLTYP,SNAME) 参数: 1. F为用户定义的是每个积分点所作用的荷载的大小; 2. KSTEP,KINC为ABAQUS传到用户子程序当前的STEP和INCREMENT值; 3. TIME(1),TIME(2)为当前STEP TIME和INCREMENT TIME的值; 4. NOEL,NPT为积分点所在单元的编号和积分点的编号; 5. COORDS为当前积分点的坐标; 6.除F外,所有参数的值都是ABAQUS传到用户子程序中的。 功能: 1.荷载可以被定义为积分点坐标、时间、单元编号和单元节点编号的函数。 2.用户可以从其他程序的结果文件中进行相关操作来定义积分点F的大小。 例1:这个例子在每个积分点施加的荷载不仅是坐标的函数,而且是随STEP变化而变化的。SUBROUTINE DLOAD(P,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, 1 JLTYP,SNAME) INCLUDE 'ABA_PARAM.INC' C DIMENSION TIME(2),COORDS(3) CHARACTER80 SNAME PARAMETER (PLOAD=100.E4) IF (KSTEP.EQ.1) THEN !当STEP=1时的荷载大小 P=PLOAD ELSE IF (KSTEP.EQ.2) THEN !当STEP=2时的荷载大小 P=COORDS(1)PLOAD !施加在积分点的荷载P是坐标的函数 ELSE IF (KSTEP.EQ.3) THEN !当STEP=3时的荷载大小 P=COORDS(1)2PLOAD ELSE IF (KSTEP.EQ.4) THEN !当STEP=4时的荷载大小 P=COORDS(1)3PLOAD ELSE IF (KSTEP.EQ.5) THEN !当STEP=5时的荷载大小 P=COORDS(1)4PLOAD

ABAQUS用户子程序

ABAQUS用户子程序 ABAQUS/Standard subroutines: 1.CREEP: Define time-dependent, viscoplastic behavior (creep and swelling). 定义和时间相关的、粘塑性的运动(蠕变和膨胀) 2. DFLOW: Define nonuniform pore fluid velocity in a consolidation analysis. 在压实分析中,定义非均匀孔隙流速度 3. DFLUX: Define nonuniform distributed flux in a heat transfer or mass diffusion analysis. 在热传递和质量扩散分析中,定义非均匀的分布流量 4. DISP: Specify prescribed boundary conditions. 指定规定的边界条件 5. DLOAD: Specify nonuniform distributed loads. 指定非均匀的分布荷载 6. FILM: Define nonuniform film coefficient and associated sink temperatures for heat transfer analysis. 对热传递分析指定非均匀的膜层散热系数和联合的散热器温度 7. FLOW: Define nonuniform seepage coefficient and associated sink pore pressure for consolidation analysis. 对压实分析定义非均匀的渗流系数和渗入孔隙压力 8. FRIC: Define frictional behavior for contact surfaces. 对接触面定义摩擦 9. GAPCON: Define conductance between contact surfaces or nodes in a fully coupled temperature-displacement analysis or pure heat transfer analysis. 在一个完全耦合的温度—置换分析或者是纯热传递分析中,定义接触面或节点间的导热系数。 10. GAPELECTR: Define electrical conductance between surfaces in a coupled thermal-electrical analysis. 在耦合热电分析中,定义表面间的导电系数 11. HARDINI: Define initial equivalent plastic strain and initial backstress tensor. 定义初始等效应变和初始反应力张量 12. HETVAL: Provide internal heat generation in heat transfer analysis. 在热传递分析中提供初始热 13. MPC: Define multi-point constraints. 定义多点约束 14. ORIENT: Provide an orientation for defining local material directions or local directions for kinematic coupling constraints or local rigid body directions for inertia relief. 为定义局部材料方向提供定位;运动学耦合约束的局部方向;惯性释放的局部刚体方向。 15. RSURFU: Define a rigid surface. 定义一个刚性面 16. SDVINI: Define initial solution-dependent state variable fields. 定义初始和结果相关的变量场 17. SIGINI: Define an initial stress field.

abaqus子程序通过验证方法小结

abaqus子程序通过验证方法小结 本文只对abaqus子程序验证进行小结,不提供abaqus的详细安装方法。 想要在ABAQUS里用子程序,必须安装Intel Visual Fortran,而安装Intel Visual Fortran前需要安装Microsoft Visual Studio,做好相关设置后通过AbaqusVerification测试子程序以及其他ABAQUS功能是否能正常使用。 每种方法都必须先安装Microsoft Visual Studio(英文版),然后安装Intel Visual Fortran(若为64位系统,两个软件都选择自定义安装,勾上64位系统支持项),这里要注意MVS(2008)的默认的custom安装内容是没有64位系统支持的,需要勾选64位系统支持项,或者直接勾选full,进行完全安装。每种软件的安装程序都最好右击以管理员身份运行。Abaqus的安装顺序可在MVS和IVF的前面或者后面,没有限制。下面介绍子程序验证方法。 方法1: 1.找到IVF的初始化文件ifortvars.bat(不同版本名称可能稍有差异), 按住shift键,右击初始化文件,选择复制为路径。 2.再找到已安装的Abaqus所在文件夹下的commands文件夹中的 abq6xxx.bat文件,右击编辑打开它,在@echo off下插入命令 @call并将第一步复制的路径粘贴在其后,关闭并保存文件。 3.在开始菜单的abaqus文件夹下找到abaqus verification快捷方式,

左击它进行验证(必须先启动abaqus license),最后如果验证文件全部pass则成功! 方法2: 1.同方法1 2.右键点击Abaqus Verification快捷方式,选择属性,在目标中的内容前面加所复制的路径并在其后边加上&&,如"X:\yourdir\Intel\Compiler\Fortran\$version$\IA32\Bin\ifortvars.b at"&& (注意&&后有个空格,64位系统为"...\$version$\em64t\bin\ifortvars.bat" && ),同时在Abaqus主程序的目标内容前面加同样的内容 3.在开始菜单的abaqus文件夹下找到abaqus verification快捷方

浅谈ABAQUS用户子程序

李青清华大学工程力学系 摘要本文首先概要介绍了ABAQUS的用户子程序和应用程序,然后从参数,功能两方面详细论述了DLOAD, UEXTERNALDB, URDFIL三个用户子程序和GETENVVAR,POSFIL,DBFILE三个应用程序,并详细介绍了ABAQUS的结果文件(.FIL)存储格式。 关键字ABAQUS,用户子程序,应用程序,结果文件 一、前言: ABAQUS为用户提供了强大而又灵活的用户子程序接口(USER SUBROUTINE)和应用程序接口(UTILITY ROUTINE)。ABAQUS 6.2.5一共有42个用户子程序接口,13个应用程序接口,用户可以定义包括边界条件、荷载条件、接触条件、材料特性以及利用用户子程序和其它应用软件进行数据交换等等。这些用户子程序接口使用户解决一些问题时有很大的灵活性,同时大大的扩充了ABAQUS的功能。例如:如果荷载条件是时间的函数,这在ABAQUS/CAE 和INPUT 文件中是难以实现的,但在用户子程序DLOAD中就很容易实现。 二.在ABAQUS中使用用户子程序 ABAQUS的用户子程序是根据ABAQUS提供的相应接口,按照FORTRAN语法用户自己编写的代码。在一个算例中,用户可以用到多个用户子程序,但必须把它们放在一个以.FOR为扩展名的文件中。运行带有用户子程序的算例时有两种方法,一是在CAE中运行,在EDIT JOB菜单的GENERAL子菜单的USER SUBROUTINE FILE对话框中选择用户子程序所在的文件即可;另外是在ABABQUS COMMAND用运行,语法如下: Home 序,但可以调用用户自己编写的FORTRAN子程序和ABAQUS应用程序。当用户编写FORTRAN子程序时,建议子程序名以K开头,以免和ABAQUS内部程序冲突。 2.当用户在用户子程序中利用OPEN打开外部文件时,要注意以下两点:一是设备号的选择是有限制的,只能取15-18和大于100的设备号,其余的都已被ABAQUS占用。二是用户需提供外部文件的绝对路径而不是相对路径。3.ABAQUS 应用程序必须由用户子程序调用。 当用到某个用户子程序时,用户所关心的主要有两方面:一是ABAQUS提供的用户子程序的接口参数。有些参数是ABAQUS传到用户子程序中的,例如SUBROUTINE DLOAD中的KSTEP,KINC,COORDS;有些是需要用户自己定义的,例如F。二是ABAQUS何时调用该用户子程序,对于不同的用户子程序ABAQUS调用的时间是不同的。有些是在每个STEP的开始,有的是STEP结尾,有的是在每个INCREMENT的开始等等。当ABAQUS调用用户子程序是,都会把当前的STEP和INCREMENT利用用户子程序的两个实参KSTEP和KINC传给用户子程序,用户可编个小程序把它们输出到外部文件中,这样对ABAQUS何时调用该用户子程序就会有更深的了解。 下面就选出几个常用的用户子程序和应用程序进行详细解释:一.SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS,

ABAQUS子程序USDFLD

Abaqus/CAE User's Manual 12.8.5 Defining field variables at a material point (在一个材料点定义场变量) In Abaqus/Standard you can introduce dependence on solution variables with user subroutine USDFLD. This subroutine allows you to define field variables at a material point as functions of time, of any of the available material point quantities listed in “Abaqus/Standard output variable identifiers,” Section 4.2.1 of the Abaqus Analysis User's Manual, and of material directions. Material properties defined as functions of these field variables may, thus, be dependent on the solution. User subroutine USDFLD is called at each point for which the material definition includes a reference to the user subroutine. (在ABAQUS里面,你能够用子程序USDFLD来求解变量。USDFLD允许你将一个材料点上的场变量定义为时间函数,能够使用到的材料点在用户使用手册4.2.1节中“abaqus输出变量的标识码”中被提及到。材料的特性被定义作为场变量的函数,因此依赖于求解方法。) (在每个被定义材料性能的点USDFLD能够被调用) To include a reference to user subroutine USDFLD in a material definition:

ABAQUS用户子程序复习进程

A B A Q U S用户子程序

ABAQUS用户子程序 ABAQUS/Standard subroutines: 1.CREEP: Define time-dependent, viscoplastic behavior (creep and swelling). 定义和时间相关的、粘塑性的运动(蠕变和膨胀) 2. DFLOW: Define nonuniform pore fluid velocity in a consolidation analysis. 在压实分析中,定义非均匀孔隙流速度 3. DFLUX: Define nonuniform distributed flux in a heat transfer or mass diffusion analysis. 在热传递和质量扩散分析中,定义非均匀的分布流量 4. DISP: Specify prescribed boundary conditions. 指定规定的边界条件 5. DLOAD: Specify nonuniform distributed loads. 指定非均匀的分布荷载 6. FILM: Define nonuniform film coefficient and associated sink temperatures for heat transfer analysis. 对热传递分析指定非均匀的膜层散热系数和联合的散热器温度 7. FLOW: Define nonuniform seepage coefficient and associated sink pore pressure for consolidation analysis. 对压实分析定义非均匀的渗流系数和渗入孔隙压力 8. FRIC: Define frictional behavior for contact surfaces. 对接触面定义摩擦 9. GAPCON: Define conductance between contact surfaces or nodes in a fully coupled temperature-displacement analysis or pure heat transfer analysis. 在一个完全耦合的温度—置换分析或者是纯热传递分析中,定义接触面或节点间的导热系数。 10. GAPELECTR: Define electrical conductance between surfaces in a coupled thermal-electrical analysis. 在耦合热电分析中,定义表面间的导电系数 11. HARDINI: Define initial equivalent plastic strain and initial backstress tensor. 定义初始等效应变和初始反应力张量 12. HETVAL: Provide internal heat generation in heat transfer analysis. 在热传递分析中提供初始热 13. MPC: Define multi-point constraints. 定义多点约束 14. ORIENT: Provide an orientation for defining local material directions or local directions for kinematic coupling constraints or local rigid body directions for inertia relief. 为定义局部材料方向提供定位;运动学耦合约束的局部方向;惯性释放的局部刚体方向。 15. RSURFU: Define a rigid surface. 定义一个刚性面 16. SDVINI: Define initial solution-dependent state variable fields. 定义初始和结果相关的变量场 17. SIGINI: Define an initial stress field.

Abaqus6.11及marc2010子程序安装指南

Abaqus 6.11 / Marc 2010 子程序配置指南及一些安装问题 测试通过环境:visual studio 2008/intel fortran 11 安装步骤: 1.下载安装visual studio 2008(EN)必须安装英文版,不然无法定位编译器。 另外,visual studio 2010似乎也无法定位,反正08肯定可以。 2.下载安装intel fortran 11 前后的版本应该都可以。 3.安装abaqus 6.11/Marc 2010 4.安装完成后,对abaqus做如下配置: 修改ABAQUS CAE及ABAQUS verification的快捷方式属性中目标栏为类似下列语句:"D:\Program Files\Intel\Compiler\11.1\038\bin\ia32\ifortvars_ia32.bat" &&E:\SIMULIA\Abaqus\Commands\abq611pr3.bat cae || pause 所添加的路径为intel fortran的安装路径,32位系统使用ifortvars_ia32.bat文件,64为系统使用ifortvars_ia64.bat文件,该文件同样在intel fortran的安装路径里。 修改完成以后运行verification,不出意外的话应该全部显示为pass。 5.安装完成后,对marc做如下配置: 修改D:\MSC.Software\Marc\2010\marc2010\tools下include_win32.bat文件(64位 系统为include_win64.bat)在文件开头处添加语句: @call "D:\Program Files\Intel\Compiler\11.1\038\bin\ia32\ifortvars_ia32.bat" 上述过程即可设置好abaqus及marc所需要的子程序编译器环境。 另外,安装abaqus的过程中可能会出现内存错误(ABAQUSCAE的错误),安装完成以后也无法打开abaqus,这通常是因为ATI显卡与abaqus硬件加速不兼容的原因,解决办法为:右击桌面,点属性->设置->高级->疑难解答,把硬件加速调低到第3格或更低。 希望对大家有所帮助~^_^

Abaqus材料用户子程序UMAT基础知识及手册例子全面解释

1、为何需要使用用户材料子程序(User-Defined Material, UMAT )? 很简单,当ABAQUS 没有提供我们需要的材料模型时。所以,在决定自己定义一种新的材料模型之前,最好对ABAQUS 已经提供的模型心中有数,并且尽量使用现有的模型,因为这些模型已经经过详细的验证,并被广泛接受。 UMAT 子程序具有强大的功能,使用UMAT 子程序: (1)可以定义材料的本构关系,使用ABAQUS 材料库中没有包含的材料进行计算,扩充程序功能。 (2) 几乎可以用于力学行为分析的任何分析过程,几乎可以把用户材料属性赋予ABAQU S 中的任何单元。 (3) 必须在UMAT 中提供材料本构模型的雅可比(Jacobian )矩阵,即应力增量对应变增量的变化率。 (4) 可以和用户子程序“USDFLD ”联合使用,通过“USDFLD ”重新定义单元每一物质点上传递到UMAT 中场变量的数值。 2、需要哪些基础知识? 先看一下ABAQUS 手册(ABAQUS Analysis User's Manual )里的一段话: Warning: The use of this option generally requires considerable expertise(一定的专业知识). The user is cautioned that the implementation (实现) of any realistic constitutive (基本) model requires extensive (广泛的) development and testing. Initial testing on a single eleme nt model with prescribed traction loading (指定拉伸载荷) is strongly recommended. 但这并不意味着非力学专业,或者力学基础知识不很丰富者就只能望洋兴叹,因为我们的任务不是开发一套完整的有限元软件,而只是提供一个描述材料力学性能的本构方程(Constitutive equation )而已。当然,最基本的一些概念和知识还是要具备的,比如: 应力(stress),应变(strain )及其分量; volumetric part 和deviatoric part ;模量(modul us )、泊松比(Poisson’s ratio)、拉梅常数(Lame constant);矩阵的加减乘除甚至求逆;还有一些高等数学知识如积分、微分等。 3、UMAT 的基本任务? 我们知道,有限元计算(增量方法)的基本问题是: 已知第n 步的结果(应力,应变等)n σ,n ε,然后给出一个应变增量1+n d ε,计算新的应力1+n σ。UMAT 要完成这一计算,并要计算Jacobian 矩阵DDSDDE(I,J) =εσΔ?Δ?/。σΔ是应力增量矩阵(张量或许更合适),εΔ是应变增量矩阵。DDSDDE(I,J) 定义了第J 个应变分量的微小变化对

相关文档
最新文档