-
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
节中“
p>
abaqus
输出变量的标识码”中被提及到。材料的特性被定义作
为场变量
的函数,因此依赖于求解方法。)
< br>(在每个被定义材料性能的点
USDFLD
能够被调用)
To
include
a
reference
to
user
subroutine
USDFLD
in
a
material
definition:
1.
From
the
menu
bar
in
the
Edit
Material
dialog
box,
select
General
User Defined
Field
.
(For information on
displaying the
Edit Material
dialog box, see
“
Creating or
editing a material,
”
Section
12.7.1
.)
2.
Click
OK
to
close
the
Edit
Material
dialog
box.
Alternatively,
you
can select another material behavior to
define from the menus in
the
Edit
Material
dialog
box
(see
“
Browsing
and
modifying
material
behaviors,
”
Section 12.7.2
, for more
information).
Abaqus/CAE User's Manual
(子程序
USDFLD
在材料中的定义过程可参考下面:
1.
在编辑材料的对话框中,选择<
/p>
General-
User
Defined Field
2.
点击
OK
关闭编辑材料的对话框,或者在编辑对话框中选择另外
的一个材料
特性。)
===========================
==========================================
< br>=============================================== ======================
=================
==================================================
==
=====================================
================================
==
Abaqus User
Subroutines Reference Manual
1.1.49 USDFLD
User
subroutine
to
redefine
field
variables
at
a
material
point.
(在一个材料点上使用
USDFLD
重
新定义场变量)
Product:
Abaqus/Standard
References
(参考)
?
?
?
?
?
“
Obtaining material point
information in an Abaqus/Standard
analysis,
”
Section 2.1.6
“
Material data
definition,
”
Section 20.1.2
of the Abaqus Analysis
User's
Manual
*USER DEFINED
FIELD
“
Damage
and
failure
of
a
laminated
composite
plate,
”
Section
1.1.14
of
the Abaqus Example Problems Manual
“
USDFLD,
”
Section 4.1.24 of the Abaqus
Verification Manual
Overview
(概述)
User subroutine
USDFLD
:
?
?
?
?
?
?
allows you to define field variables at
a material point as
functions of time
or of any of the available material point
quantities listed in the Output
Variable Identifiers table
(
“
Abaqus/Standard
output variable identifiers,
”
Section 4.2.1 of
the Abaqus
Analysis User's Manual
) except the
user-defined output
variables UVARM and
UVARM
n
;
can be
used to introduce
solution-
dependent
material properties
since such properties can easily be
defined as functions of field
variables;
will be called at
all material points of elements for which the
material definition includes user-
defined field variables;
must call
utility routine GETVRM to access material point
data;
can use and update state
variables; and
can
be
used
in
conjunction
with
user
subroutine
UFIELD
to
prescribe
predefined field
variables.
(子程序
USDFLD
:
1.
< br>允许你在一个材料点定义场变量作为时间函数,
在输出变量的标
< br>示符中列出了所有材料点的变量,
除了用户定义的输出变量
和
uvarm uvarm
。
2.
3.
4.
5.
能够用来介绍材料的性能,
并且这种性能能够被定义为场变量的
函数。
在各元素的材料点中,用户定义的场变量能够被调用。
必须调用使用程序
GETVRM
来接入材料点
数据
可以和
UFIELD
一起使用来描述预定义的场变量)
Explicit solution dependence
(
明确解的关系
)
Since this routine provides
access to material point quantities only at
the start of the increment, the
solution dependence introduced in this
way is explicit: the material
properties for a given increment are not
influenced by the results obtained
during the increment. Hence, the
accuracy of the results depends on the
size of the time increment.
Therefore,
you can control the time increment in this routine
by means
of the variable PNEWDT.
(由于程序提供的接入点只是在增量的开始,
解之间的相互关系应该被明确:
在
增量的过程中,
材料的性能不应该被
得到的结果所影响。
因此,
结果的准确性依
赖于时间增量的大小。因此,你能通过
PENWDT
来控制
程序中的时间增量。)
Defining field va
riables
(
定义场变量
)
Before
user
subroutine
USDFLD
is
called,
the
values
of
the
field
variables
at the material point are calculated by
interpolation from the values
defined
at the nodes. Any changes to the field variables
in the user
subroutine
are
local to
the material point: the nodal
field variables
retain the values
defined as initial conditions, predefined field
variables,
or
in
user
subroutine
UFIELD.
The
values
of
the
field
variables
defined in this routine are used to
calculate values of material
properties
that are defined to depend on field variables and
are passed
into other user subroutines
that are called at the material point, such
as the following:
(在子程序
USDFLD
被调用之前,通过节点中定义的数值采用差值法计算出材料
点的场变量。
子程序中场变量的任意改动都是在材料点上的改动
:
节点场变量保
持着数值被定义为初始状态(预定义场变量),
或者使用子程序
UFIELD,
程序中
场变量的值被用来计算材料的性能,
材料的特性被定义依赖于场变量,
< br>并且在其
他子程序中被调用。例如下面的程序
:
)
?
?
?
?
?
?
?
?
CREEP
HETVAL
UEXPAN
UHARD
UHYPEL
UMAT
UMATHT
UTRS
Output of
the user-defined field variables at the material
points can be obtained with the element
integration point output variable
FV (see
“
Abaqus/Standard output
variable identifiers,
”
Section
4.2.1 of the Abaqus
Analysis User's Manual
).
Accessing material point data
(
材料存储点数据
)
You
are
provided
with
access
to
the
values
of
the
material
point
quantities
at
the
start
of
the
increment
(or
in
the
base
state
in
a
linear
perturbation
step)
through
the
utility
routine
GETVRM
described
in
“
Obtaining
material
point information
in an Abaqus/Standard analysis,
”
Section 2.1.6
. The
values of the material point quantities
are obtained by calling GETVRM
with the
appropriate output variable keys. The values of
the material
point data are recovered
in the arrays ARRAY, JARRAY, and FLGRAY for
floating point, integer, and character
data, respectively. You may not
get
values of some material point quantities that have
not been defined
at the start of the
increment; e.g., ER.
(你可以通过子程序
GETVRM
在增量的开始或者在一个线性的摄动步中设置材料
点的数值。通过子程序
GETVRM
,采用输出变量的减能
够获得材料点的数值。材
料点数据的值呈现在矩阵中,
ARRA
Y, JARRAY, and FLGRAY
分别对应浮点型、整
形、字符型。对于在增量开始时没有定义的材料点得不到数值。)
State
variables
(状态变量)
Since
the
redefinition
of
field
variables
in
USDFLD
is
local
to
the
current
increment (field variables are restored
to the values interpolated from
the
nodal
values
at
the
start
of
each
increment),
any
history
dependence
required to
update material properties by using this
subroutine must be
introduced with
user-defined state variables.
The state
variables can be updated in
USDFLD
and then passed into
other
user
subroutines
that
can
be
called
at
this
material
point,
such
as
those
listed above. You specify the number of
such state variables, as shown
in the
example at the end of this section (see also
“
Allocating space”
in “User subroutines:
overview,
”
Section 17.1.1 of
the Abaqus Analysis
User's
Manual
).
(在
USDFLD
中重新定义的作为当前变量(场变量的值通过在每个增量开始的节
点数值内插得到),任何新的变量必须被使用子程序用户定义变量。
在
USDLFD
中,状态变量能够更新,并且在其他子
程序(上述列出的)中能够被
调用,在这章的最后的例子中,你可以确定这些状态变量的
数目。)
User subroutine
interface
(用户子程序的接口)
SUBROUTINE
USDFLD(FIELD,STATEV,PNEWDT,DIRECT,T,CELENT,
1 TIME,DTIME,CMNAME,ORNAME,NFIELD,N
STATV,NOEL,NPT,LAYER,
2 KSPT,KSTEP,
KINC,NDI,NSHR,COORD,JMAC,JMATYP,MATLAYO,LACCFLA)
C
INCLUDE 'ABA_'
C
CHARACTER*80
CMNAME,ORNAME
CHARACTER*3
FLGRAY(15)
DIMENSION
FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3),
1 T(3,3),TIME(2)
DIMENSION
ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*),COORD(*)
user coding to define
FIELD
and, if necessary,
STATEV
and
PNEWDT
RETURN
END
Variable to be
defined
(被定义的变量)
FIELD(NFIELD)
An array
containing the field variables at the current
material point.
These are passed in
with the values interpolated from the nodes at the
end of the current increment, as
specified with initial condition
definitions, predefined field variable
definitions, or user subroutine
UFIELD.
The interpolation is performed using the same
scheme used to
interpolate
temperatures: an average value is used for linear
elements;
an
approximate
linear
variation
is
used
for
quadratic
elements
(also
see
“
Solid (continuum)
elements,
”
Section 27.1.1 of
the Abaqus Analysis
User's
Manual
). The updated values are used to
calculate the values of
material
properties
that
are
defined
to
depend
on
field
variables
and
are
passed
into
other
user
subroutines
(
CREEP
,
HETVAL
,
UEXPAN
,
UHARD
,
UHYPEL
,
UMAT
,
UMATHT
, and
UTRS
) that are called at
this material point.
(一个数组包含着当前材料点上的场变量
。
在当前增量结束的节点通过内插法求
得,作为指定的初始状态
,预定义场变量或者只用子程序
USDFLD
。方法和温度
p>
的差值法相同:
平均值用于线性单元;
一个
近似的线性变量被用于二次元素
(可
参考
27.1.1
)。这些更新的数据用来计算材料性能的数据,这些数值用场变量
来定义,并且能够被子程序
(CREEP, HETVAL,
UEXPAN, UHARD, UHYPEL, UMAT,
UMATHT,
and UTRS)
调用。)
Variables that can be
updated
(可以更新的变量)
STATEV(NSTATV)
An array
containing the
solution-
dependent
state variables. These are
passed in as the values at the
beginning of the increment. In all cases
STATEV
can
be
updated
in
this
subroutine,
and
the
updated
values
are
passed
into
other
user
subroutines
(
CREEP
,
HETVAL
,
UEXPAN
,
UMAT
,
UMATHT
,
and
UTRS
)
that are
called at this material point. The number of state
variables
associated
with
this
material
point
is
defined
as
described
in
“
Allocating
space” in “User subroutines:
overview,
”
Section 17.1.1 of
the Abaqus
Analysis User's
Manual
.
(一组数据用来保存解相关的变量。
它们在增量开始时被接入。
在所有的例子中,
S
TATEV
能够在子程序中被更新,并且被更新的数值能够在(
CREEP, HETVAL,
UEXPAN, UMAT, UMATHT,
and UTRS
)子程序中被调用。状态变量的数目与材料点
的相关,在
17.1.1
中描述)
PNEWDT
Ratio of suggested
new time increment to the time increment being
used
(DTIME, see below). This variable
allows you to provide input to the
automatic time incrementation
algorithms in Abaqus/Standard (if
automatic time incrementation is
chosen).
(推荐的新的时间增量和时间增量的比例。这个变量允许你提供输
入到
abaqus
里面的自动时间增量的算法。)
PNEWDT is set to a large value
before each call to
USDFLD
.
(在
USDFLD
被调用之前,
PNEWDT
被设置成一个大的数值。)
If
PNEWDT
is
redefined
to
be
less
than
1.0,
Abaqus/Standard
must
abandon
the time increment
and attempt it again with a smaller time
increment.
The suggested new time
increment provided to the automatic time
integration algorithms is PNEWDT
×
DTIME, where the PNEWDT
used is the
minimum value for all calls
to user subroutines that allow redefinition
of PNEWDT for this iteration.
(如果
PENWD
被重新定义成小于
1.0
的数,
Abaqus/Standard
必须禁止时间变量,
并且尝试更小的时间变量。新的时间变量采用自动时间积
分算法是
PNEWDT
×
DTIME
,
PNEWDT
使用最小的值对于调用其他的子程序,允许
PE
NWDT
迭代。)
If
PNEWDT
is
given
a value
that
is
greater
than
1.0
for
all
calls
to
user
subroutines for this iteration and the
increment converges in this
iteration,
Abaqus/Standard
may
increase
the
time
increment.
The
suggested
new
time
increment
provided
to
the
automatic
time
integration
algorithms
is PNEWDT
×
DTIME, where the PNEWDT used is the
minimum value for all
calls to user
subroutines for this iteration.