-
UMAT
User subroutine to define a
material's mechanical behavior.
Product:
Abaqus/Standard
Warning:
The use of this
subroutine generally requires considerable
expertise. You are cautioned that the
implementation of any realistic
constitutive model requires extensive
development and testing. Initial
testing on a single-element model with
prescribed traction loading is
strongly
recommended.
References
?
?
?
?
?
“
User-defined mechanical
material behavior,
”
Section
25.7.1 of the
Abaqus Analysis User's
Manual
“
User-
defined thermal material behavior,
”
Section 25.7.2 of the
Abaqus
Analysis User's Manual
*USER
MATERIAL
“
SDVINI,
”
Section 4.1.11 of the Abaqus
Verification Manual
“
UMAT
and
UHYPER,
”
Section
4.1.21
of
the
Abaqus
Verification
Manual
Overview
User subroutine
UMAT
:
?
?
?
?
?
can be used to
define the mechanical constitutive behavior of a
material;
will be called at
all material calculation points of elements for
which the material definition includes
a user-defined material
behavior;
can be used with any procedure that
includes mechanical behavior;
can use
solution-dependent state variables;
must update the stresses and solution-
dependent state variables to
their
values at the end of the increment for which it is
called;
must provide the material
Jacobian matrix,
, for the
?
mechanical
constitutive model;
?
can be used in conjunction with user
subroutine
USDFLD
to
redefine
any field variables before
they are passed in; and
?
is described further in
“
User-defined mechanical
material
behavior,
”
Section 25.7.1 of the Abaqus Analysis
User's Manual
.
Storage of
stress and strain components
In the stress and strain arrays and in
the matrices DDSDDE, DDSDDT, and
DRPLDE,
direct
components
are
stored
first,
followed
by
shear
components.
There are NDI
direct and NSHR engineering shear components. The
order of
the components is defined in
“
Conventions,
”
Section 1.2.2 of the Abaqus
Analysis User's Manual
.
Since the number of active stress and strain
components varies between element
types, the routine must be coded to
provide for all element types with
which it will be used.
Defining local
orientations
If a local
orientation
(
“
Orientations,
”
Section 2.2.5 of the Abaqus
Analysis
User's
Manual
)
is
used
at
the
same
point
as
user
subroutine
UMAT,
the stress and strain
components will be in the local orientation; and,
in the case of finite-strain analysis,
the basis system in which stress
and
strain components are stored rotates with the
material.
Stability
You should ensure that the integration
scheme coded in this routine is
stable
—
no direct
provision is made to include a stability limit in
the
time stepping scheme based on the
calculations in UMAT.
Convergence rate
DDSDDE
and
—
for coupled temperature-
displacement and coupled
thermal-
electrical-structural
analyses
—
DDSDDT, DRPLDE, and
DRPLDT must
be defined accurately if
rapid convergence of the overall Newton scheme
is to be achieved. In most cases the
accuracy of this definition is the
most
important
factor governing the
convergence rate.
Since
nonsymmetric
equation
solution
is
as
much
as
four
times
as
expensive
as
the
corresponding
symmetric
system, if the constitutive Jacobian (DDSDDE) is
only slightly
nonsymmetric (for
example, a frictional material with a small
friction
angle), it may be less
expensive computationally to use a symmetric
approximation and accept a slower
convergence rate.
An incorrect
definition of the material Jacobian affects only
the
convergence rate; the results (if
obtained) are unaffected.
Special
considerations for various element types
There are several special
considerations that need to be noted.
Availability of deformation gradient
The deformation gradient is available
for solid (continuum) elements,
membranes, and finite-strain shells
(S3/S3R, S4, S4R, SAXs, and SAXAs).
It
is not available for beams or small-strain shells.
It is stored as a
3 × 3 matrix with
component equivalence DFGRD0(I,J)
. For
fully
integrated first-order
isoparametric elements (4-node quadrilaterals in
two dimensions and 8-node hexahedra in
three dimensions) the selectively
reduced integration technique is used
(also known as the
technique).
Thus, a modified deformation gradient
is passed into user
subroutine
UMAT
. For more
details, see
“
Solid
isoparametric quadrilaterals and
hexahedra,
”
Section 3.2.4 of
the Abaqus
Theory Manual
.
Beams and shells that calculate
transverse shear energy
If
user
subroutine
UMAT
is
used
to
describe
the
material
of
beams
or
shells
that calculate transverse shear energy,
you must specify the transverse
shear
stiffness
as part
of the
beam
or
shell
section definition
to define
the transverse shear behavior. See
“
Shell section
behavior,
”
Section
28.6.4
of
the
Abaqus
Analysis
User's
Manual
,
and
“
Choosing
a
beam
element,
”
Section
28.3.3 of the Abaqus Analysis User's
Manual
, for information on
specifying this stiffness.
Open-section beam elements
When
user
subroutine
UMAT
is
used
to
describe
the
material
response
of
beams
with
open sections (for example, an I-section), the
torsional stiffness
is obtained as
where
J
is
the
torsional
constant,
A
is
the
section
area,
k
is
a
shear
factor,
and
is
the
user-specified
transverse
shear
stiffness
(see
“
Transverse
shear
stiffness
definition”
in
“Choosing
a
beam
element,
”
Section
28.3.3
of
the Abaqus Analysis User's Manual
).
Elements with hourglassing modes
If this capability is used to describe
the material of elements with
hourglassing modes, you must define the
hourglass stiffness factor for
hourglass control based on the total
stiffness approach as part of the
element
section
definition.
The
hourglass
stiffness
factor
is
not
required
for enhanced
hourglass control, but you can define a scaling
factor for
the
stiffness
associated
with
the
drill
degree
of
freedom
(rotation
about
the
surface
normal). See
“
Section
controls,
”
Section
26.1.4
of
the
Abaqus
Analysis User's Manual
, for
information on specifying the stiffness
factor.
Pipe-soil
interaction elements
The constitutive
behavior of the pipe-soil interaction elements
(see
“
Pipe-soil interaction
elements,
”
Section 31.12.1
of the Abaqus Analysis
User's
Manual
) is defined by the
force per unit length caused by
relative
displacement
between
two
edges
of
the
element.
The
relative-displacements
are
available
as
“strains”
(STRAN
and
DSTRAN).
The
corresponding
forces
per unit length must be defined in the
STRESS array. The Jacobian matrix
defines the variation of force per unit
length with respect to relative
displacement.
For two-
dimensional elements two in-
plane
components of “stress” and
“strain”
exist (NTENS=NDI=2, and NSHR=0). For
three
-dimensional
elements
three
components
of
“stress”
and
“strain”
exist
(NTENS=NDI=3,
and
NSHR=0).
Large volume changes with
geometric nonlinearity
If
the material model allows large volume changes and
geometric
nonlinearity is considered,
the exact definition of the consistent
Jacobian
should
be
used
to
ensure
rapid
convergence.
These
conditions
are
most commonly encountered when
considering either large elastic strains
or pressure-dependent plasticity. In
the former case, total-form
constitutive equations relating the
Cauchy stress to the deformation
gradient
are
commonly
used;
in
the
latter
case,
rate-form
constitutive
laws
are generally used.
For total-form constitutive laws, the
exact consistent Jacobian
is
defined through the variation in
Kirchhoff stress:
Here,
J
is the determinant of the
deformation gradient,
is the Cauchy
stress,
is
the
virtual
rate
of
deformation,
and
is
the
virtual
spin
tensor, defined as
and
For rate-form constitutive laws, the
exact consistent Jacobian is given
by
Use with incompressible
elastic materials
For
user-defined
incompressible
elastic
materials,
user
subroutine
UHYPER
should be
used rather than user subroutine
UMAT
. In
UMAT
incompressible
materials must be modeled via a penalty
method; that is, you must ensure
that
a
finite
bulk
modulus
is
used.
The
bulk
modulus
should
be
large
enough
to
model
incompressibility
sufficiently
but
small
enough
to
avoid
loss
of
precision. As a general guideline, the
bulk modulus should be about
–
times the shear modulus.
The tangent bulk modulus
can be
calculated from
If
a
hybrid
element
is
used
with
user
subroutine
UMAT
,
Abaqus/Standard
will
replace
the
pressure
stress
calculated
from
your
definition
of
STRESS
with
that derived from the Lagrange
multiplier and will modify the Jacobian
appropriately.
For
incompressible pressure-sensitive materials the
element choice is
particularly
important when using user subroutine
UMAT
. In particular,
first-order wedge elements should be
avoided. For these elements the
technique
is
not
used
to
alter
the
deformation
gradient
that
is
passed
into
user
subroutine
UMAT
, which
increases the risk of volumetric locking.
Increments for which only the Jacobian
can be defined
Abaqus/Standard passes zero strain
increments into user subroutine
UMAT
to start the
first increment of all the steps and all
increments of steps
for which you have
suppressed extrapolation (see
“
Procedures:
overview,
”
Section 6.1.1
of the
Abaqus Analysis
User's Manual
). In
this case
you can
define only the Jacobian
(DDSDDE).
Utility routines
Several utility routines may help in
coding user subroutine
UMAT
.
Their
functions include determining
stress invariants for a stress tensor and
calculating
principal
values
and
directions
for
stress
or
strain
tensors.
These utility
routines are discussed in detail in
“
Obtaining stress
invariants, principal stress/strain
values and directions, and rotating
tensors in an Abaqus/Standard
analysis,
”
Section
2.1.11
.
User subroutine
interface
SUBROUTINE
UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
1 RPL,DDSDDT,DRPLDE,DRPLDT,
2 STRA
N,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME
,
3 NDI,NSHR,NTENS,NSTATV,PROPS,NP
ROPS,COORDS,DROT,PNEWDT,
4 CELENT,
DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
C
INCLUDE 'ABA_'
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(NPR
OPS),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
Variables to be defined
In all situations
DDSDDE(NTENS,NTENS)
Jacobian matrix of the constitutive
model,
, where
are the
stress increments and
are
the strain increments. DDSDDE(I,J) defines
the change in the Ith stress component
at the end of the time increment
caused
by
an
infinitesimal
perturbation
of
the
Jth
component
of
the
strain
increment array.
Unless you invoke the unsymmetric equation
solution
capability for the user-
defined material, Abaqus/Standard will use only
the
symmetric
part
of
DDSDDE.
The
symmetric
part
of
the
matrix
is
calculated
by taking one
half the sum of the matrix and its transpose.
STRESS(NTENS)
This array is
passed in as the stress tensor at the beginning of
the
increment and must be updated in
this routine to be the stress tensor at
the end of the increment. If you
specified initial stresses
(
“
Initial
conditions
in
Abaqus/Standard
and
Abaqus/Explicit,
”
Section
32.2.1
of
the
Abaqus Analysis User's
Manual
), this array will contain the
initial
stresses at the start of the
analysis. The size of this array depends on
the
value
of
NTENS
as
defined
below.
In
finite-
strain
problems
the
stress
tensor has already
been rotated to account for rigid body motion in
the
increment
before
UMAT
is
called,
so
that
only
the
corotational
part
of
the
stress
integration should be done in
UMAT
. The measure of stress
used is
“true” (Cauchy)
stress.
STATEV(NSTATV)
An array containing the solution-
dependent state variables. These are
passed in as the values at the
beginning of the increment unless they are
updated in user subroutines
USDFLD
or
UEXPAN
, in which case the
updated
values are passed in. In all
cases STATEV must be returned as the values
at
the
end
of
the
increment.
The
size
of
the
array
is
defined
as
described
in
“
Allocating space” in “User
subroutines: overview,
”
Section 17.1.1
of the Abaqus
Analysis User's Manual
.
In
finite-strain problems any vector-valued or
tensor-valued state
variables
must
be
rotated
to
account
for
rigid
body
motion
of
the
material,
in addition to any update in the values
associated with constitutive
behavior.
The rotation increment matrix, DROT, is provided
for this
purpose.
SSE, SPD,
SCD
Specific elastic strain energy,
plastic dissipation, and “creep”
dissipation,
respectively.
These
are
passed
in
as
the
values
at
the
start
of
the
increment
and
should
be
updated
to
the
corresponding
specific
energy
values at the end of
the increment. They have no effect on the
solution,
except that they are used for
energy output.
Only in a fully coupled
thermal-stress or a coupled
thermal-
electrical-structural analysis
RPL
Volumetric
heat
generation
per
unit
time
at
the
end
of
the
increment
caused
by mechanical working
of the material.
DDSDDT(NTENS)
Variation of the stress increments with
respect to the temperature.
DRPLDE(NTENS)
Variation of
RPL with respect to the strain increments.
DRPLDT
Variation of RPL
with respect to the temperature.
Only
in a geostatic stress procedure or a coupled pore
fluid
diffusion/stress analysis for
pore pressure cohesive elements
RPL
RPL is used to indicate whether or not
a cohesive element is open to the
tangential
flow
of
pore
fluid.
Set
RPL
equal
to
0
if
there
is
no
tangential
flow;
otherwise,
assign
a
nonzero
value
to
RPL
if
an
element
is
open.
Once
opened, a cohesive element will remain
open to the fluid flow.
Variable that
can be updated
PNEWDT
Ratio of suggested new time increment
to the time increment being used
(DTIME, see discussion later in this
section). This variable allows you
to
provide input to the automatic time incrementation
algorithms in
Abaqus/Standard (if
automatic time incrementation is chosen). For a
quasi-static procedure the automatic
time stepping that Abaqus/Standard
uses,
which
is
based
on
techniques
for
integrating
standard
creep
laws
(see
“
Quasi-static
analysis,
”
Section 6.2.5 of
the Abaqus Analysis User's
Manual
), cannot be
controlled from within the
UMAT
subroutine.
PNEWDT is set to a large value before
each call to
UMAT
.
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
t
he PNEWDT used is the minimum value
for all calls to user subroutines that
allow redefinition of PNEWDT for
this
iteration.
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.
-
-
-
-
-
-
-
-
-
上一篇:Ansys中ETABLE命令详解
下一篇:写人的作文初中范文10篇