Metals
For metals whose material behavior includes metal creep and/or
time-dependent volumetric swelling, the routine allows any “creep” and
“swelling” laws (viscoplastic behavior) of the following general form to be
defined:
where
-
is the uniaxial equivalent “creep” strain, conjugate to
,
the Mises or Hill equivalent stress;
-
is the volumetric swelling strain;
- p
-
is the equivalent pressure stress, ;
and
-
is the equivalent deviatoric stress (Mises' or, if anisotropic creep
behavior is defined, Hill's definition).
The user subroutine must define the increments of inelastic strain,
and ,
as functions of p and
and any other variables used in the definitions of
and
(such as solution-dependent state variables introduced by you) and of the time
increment, .
If any solution-dependent state variables are included in the definitions of
and ,
they must also be integrated forward in time in this routine.
Abaqus
computes the incremental creep strain (or the incremental viscoplastic strain)
components as
where
is the gradient of the deviatoric stress potential, defined as
and
is a matrix with the anisotropic swelling ratios in the diagonal if anisotropic
swelling is defined; otherwise, .
Drucker-Prager Materials
For materials that yield according to the extended Drucker-Prager plasticity
models using Drucker-Prager creep, the routine allows any “creep” laws
(viscoplastic behavior) of the following general form to be defined:
where
-
is the equivalent creep stress defined as
-
if creep is defined in terms of uniaxial compression,
-
if creep is defined in terms of uniaxial tension, and
-
if creep is defined in terms of pure shear,
where q is the equivalent deviatoric Mises' stress,
p is the pressure stress, and
is the friction angle, and
-
is the uniaxial equivalent “creep” strain, conjugate to
such that .
The user subroutine must define the increment of inelastic strain,
,
as a function of
and any other variables used in the definitions of
(such as solution-dependent state variables introduced by you) and of the time
increment, .
If any solution-dependent state variables are included in the definitions of
,
they must also be integrated forward in time in this routine.
Abaqus
computes the incremental creep strain (or the incremental viscoplastic strain)
components as
where
The variable
is determined in such a way that
and
is the hyperbolic creep potential, where
is the dilation angle measured in the
p–q plane at high confining pressure,
is the initial yield stress, and
is the eccentricity. See
Extended Drucker-Prager Models
for a discussion of ,
,
and .
Capped Drucker-Prager Materials
For materials that yield according to the modified Drucker-Prager/Cap
plasticity model using cap creep, the routine allows any “cohesion creep” and
“consolidation creep” laws (viscoplastic behavior) of the following general
form to be defined:
where
-
is the equivalent creep stress defined from uniaxial compression test data
as
where q is the equivalent deviatoric Mises' stress,
p is the pressure stress, and
is the friction angle;
-
is the equivalent cohesion creep uniaxial strain, conjugate to
such that ,
where
is defined below;
-
is the effective creep pressure (
and
is the cap hardening parameter); and
-
is the volumetric consolidation creep strain.
The user subroutine must define the increments of inelastic strain,
and/or ,
as functions of
and/or
and any other variables used in the definitions of
and
(such as solution-dependent state variables introduced by you) and of the time
increment, .
If any solution-dependent state variables are included in the definitions of
and
,
they must also be integrated forward in time in this routine.
Calculation of Incremental Creep Strains for the Cohesion Mechanism
Abaqus
computes the incremental creep strain (or the incremental viscoplastic strain)
components of the cohesion mechanism as
where d
is the material cohesion, the variable
is determined in such a way that
and
is the cohesion creep potential
Calculation of Incremental Creep Strains for the Consolidation Mechanism
Abaqus
computes the incremental creep strain (or the incremental viscoplastic strain)
components of the consolidation mechanism as
where R controls the shape of the cap, and
is the consolidation creep potential
Cohesion material properties are determined with a uniaxial compression test
in which ,
and consolidation material properties are determined with a volumetric
compression test in which .
Most likely,
is a positive function of ,
and
is a positive function of .
Gaskets
For gaskets whose behavior includes creep, the routine allows any “creep”
law of the following general form to be defined:
where
is the compressive creep strain, conjugate to ,
the compressive stress in the gasket.
The user subroutine must define the increments of inelastic creep strain,
,
as functions of
and any other variables used in the definitions of
(such as solution-dependent state variables introduced by you) and of the time
increment, .
If any solution-dependent state variables are included in the definitions of
,
they must also be integrated forward in time in this routine.
Abaqus
will automatically multiply this creep strain by the proper thickness (see
Defining the Gasket Behavior Directly Using a Gasket Behavior Model)
to obtain a creep closure.
Integration Schemes
Abaqus
provides both explicit and implicit time integration of creep and swelling
behavior defined in this routine. The choice of the time integration scheme
depends on the procedure type, the procedure definition, and whether a
geometric linear or nonlinear analysis is requested (see
Rate-Dependent Plasticity: Creep and Swelling).
Implicit integration is generally more effective when the response period is
long relative to typical relaxation times for the material. Simple
high-temperature structural design applications usually do not need implicit
integration, but more complicated problems (such as might arise in
manufacturing processes), creep buckling applications, or nonstructural
problems (such as geotechnical applications) often are integrated more
efficiently by the implicit method provided in the program. If implicit
integration is used with this subroutine, nonlinear equations must be solved at
each time step and the variations of ,
,
,
or
with respect to ,
,
,
,
p, ,
,
or
must be defined in the subroutine. To obtain good convergence during implicit
integration, it is essential to define these quantities accurately.
At the start of a new increment the subroutine is called once for each
integration point to calculate the estimated creep strain based on the state at
the start of the increment. Subsequently, it is called twice for each iteration
if explicit integration is used: once to calculate the creep strain increment
at the start of the increment and once to calculate it at the end of the
increment. This is needed to test the validity of the time increment with
respect to the user-specified maximum allowable difference in the creep strain
increment. The flag LEND indicates whether the
routine is called at the start or the end of the increment. The subroutine must
use the corresponding values of time, temperature, field variables, and
solution-dependent state variables in the calculation of the creep strain
increment.
For implicit integration
Abaqus
uses a local iteration procedure to solve the nonlinear constitutive equations,
and the subroutine is called multiple times. The exact number of calls depends
on the convergence rate of the local iteration procedure and, hence, will vary
from point to point. During these iterations it is possible for the values of
the state variables to be far from their final values when the equations are
solved. Therefore, the coding in the subroutine must adequately protect against
arithmetic failures (such as floating point overflows) even when variables are
passed in with physically unreasonable values. As in explicit integration, the
variable LEND indicates whether the routine is
called at the start or the end of the increment.
Constant Stress Assumption When Defining Creep and Swelling
When the creep and swelling behavior are defined by simple formulæ, it is
often possible to calculate the increments of equivalent creep and swelling
strain exactly if it is assumed that the stress is constant during the
increment. This approach has the advantage that it provides very good accuracy
within the constant stress assumption. It also avoids the problem that arises
for some creep behavior definitions: that the creep strain rate becomes
infinite at zero time (or strain). Otherwise, in such a case you must protect
against causing arithmetic failures at the start of the solution.
Defining Both Plasticity and Creep
If both plasticity and creep are defined for a material,
Abaqus
will calculate the creep strain before entering the plasticity routines. The
stresses passed into the creep routine may, therefore, exceed the yield stress.
Interpretation of Stress and Strain Variables
In finite-strain applications strain variables should be interpreted as
logarithmic strains and stresses as “true” stress.
User Subroutine Interface
SUBROUTINE CREEP(DECRA,DESWA,STATEV,SERD,EC,ESW,P,QTILD,
1 TEMP,DTEMP,PREDEF,DPRED,TIME,DTIME,CMNAME,LEXIMP,LEND,
2 COORDS,NSTATV,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME
C
DIMENSION DECRA(5),DESWA(5),STATEV(*),PREDEF(*),DPRED(*),
1 TIME(3),EC(2),ESW(2),COORDS(*)
user coding to define DECRA, DESWA
RETURN
END
Variables to Be Defined
- In all cases
- DECRA(1)
-
The definition depends on the usage:
-
Metal creep: ,
equivalent (uniaxial) deviatoric creep strain increment.
-
Drucker-Prager creep: ,
equivalent (uniaxial) creep strain increment.
-
Capped Drucker-Prager creep: ,
equivalent (uniaxial) cohesion creep strain increment.
-
Gasket creep: ,
uniaxial compressive creep strain increment.
- DESWA(1)
-
The definition depends on the usage:
-
Metal creep: ,
volumetric swelling strain increment.
-
Capped Drucker-Prager creep: ,
equivalent (volumetric) consolidation creep strain increment.
-
Drucker-Prager and gasket creep: = 0.
- For implicit creep integration (LEXIMP=1,
see below)
- DECRA(2)
-
The definition depends on the usage:
-
Metal creep and Drucker-Prager creep: .
-
Capped Drucker-Prager creep: .
-
Gasket creep: .
- DECRA(3)
-
The definition depends on the usage:
-
Metal creep: .
-
Drucker-Prager creep, gasket creep, and capped Drucker-Prager creep: =
0.
- DECRA(4)
-
The definition depends on the usage:
-
Metal creep: .
-
Drucker-Prager creep, gasket creep, and capped Drucker-Prager creep: =
0.
- DECRA(5)
-
The definition depends on the usage:
-
Metal creep: .
-
Drucker-Prager creep: .
-
Capped Drucker-Prager creep: .
-
Gasket creep: .
- DESWA(2)
-
The definition depends on the usage:
-
Metal creep: .
-
Drucker-Prager creep, gasket creep, and capped Drucker-Prager creep: =
0.
- DESWA(3)
-
The definition depends on the usage:
-
Metal creep: .
-
Capped Drucker-Prager creep: .
-
Drucker-Prager and gasket creep: = 0.
- DESWA(4)
-
The definition depends on the usage:
-
Metal creep: .
-
Capped Drucker-Prager creep: .
-
Drucker-Prager and gasket creep: = 0.
- DESWA(5)
-
The definition depends on the usage:
-
Metal creep: .
-
Drucker-Prager creep, gasket creep, and capped Drucker-Prager creep: =
0.
Variables That Can Be Updated
- STATEV
-
An array containing the user-defined solution-dependent state variables at
this point. This array will be passed in containing the values of these
variables at the start of the increment unless they are updated in user
subroutine
USDFLD or
UEXPAN, in which case the updated values are passed in. If any of
the solution-dependent variables are being used in conjunction with the creep
behavior and the routine was called at the end of the increment
(LEND=1, see the definition of
LEND below), they must be updated in this
subroutine to their values at the end of the increment. Furthermore, if the
solution-dependent state variables are defined as a function of the creep
(swelling) strain increment, they must be updated based on the creep (swelling)
strain increment computed as EC(2)-EC(1)
(likewise ESW(2)-ESW(1)), where
EC(1), EC(2),
ESW(1), and
ESW(2) are defined below. You define the size of
this array by allocating space for it (see
Allocating Space for Solution-Dependent State Variables
for more information).
- SERD
-
Magnitude of the strain energy rate density,
(required only in -integral
calculations). The strain energy rate density is defined as
Elastic rates are ignored in the calculation of .
The contour integral will, therefore, be path independent only for steady-state
creep conditions; that is, when the creep straining dominates throughout the
specimen.
Variables Passed in for Information
- EC(1)
-
The definition depends on the usage:
-
Metal creep and Drucker-Prager creep:
at the start of the increment.
-
Capped Drucker-Prager creep:
at the start of the increment.
-
Gasket creep:
at the start of the increment.
- EC(2)
-
The definition depends on the usage:
-
Metal creep and Drucker-Prager creep:
at the end of the increment.
-
Capped Drucker-Prager creep:
at the end of the increment.
-
Gasket creep:
at the end of the increment.
- ESW(1)
-
The definition depends on the usage:
-
Metal creep:
at the start of the increment.
-
Capped Drucker-Prager creep:
at the start of the increment.
-
Drucker-Prager and gasket creep: = 0.
- ESW(2)
-
The definition depends on the usage:
-
Metal creep:
at the end of the increment.
-
Capped Drucker-Prager creep:
at the end of the increment.
-
Drucker-Prager and gasket creep: = 0.
- P
-
The definition depends on the usage:
-
Metal creep and Drucker-Prager creep: ,
equivalent pressure stress (in soils analysis this is the equivalent effective
pressure stress).
-
Capped Drucker-Prager creep: ,
effective creep pressure (in soils analysis p is the
effective pressure stress).
-
Gasket creep: = 0.
If LEND=0, the value is
p or
at the beginning of the increment. If LEND=1,
the value is p or
at the end of the increment.
- QTILD
-
The definition depends on the usage:
-
Metal creep: ,
Mises or Hill equivalent stress (the Hill formula is used if anisotropic creep
is defined; see
Anisotropic Creep).
-
Gasket creep: ,
the uniaxial compressive stress.
-
Drucker-Prager creep: ,
equivalent creep stress (in soils analysis this is based on effective
stresses).
-
Capped Drucker-Prager creep: ,
equivalent creep stress (in soils analysis this is based on effective
stresses).
If LEND=0 , the value is
or
at the beginning of the increment. If LEND=1 ,
the value is
or
at the end of the increment.
- TEMP
-
Temperature at the end of the increment.
- DTEMP
-
Increment of temperature during the time increment.
- PREDEF
-
An array containing the values of all of the user-specified predefined
variables at this point at the end of the increment (initial values at the
beginning of the analysis and current values during the analysis).
- DPRED
-
An array containing the increments of all of the predefined variables during
the time increment.
- TIME(1)
-
Value of step time at the end of the increment.
- TIME(2)
-
Value of total time at the end of the increment.
- TIME(3)
-
Value of creep time at the end of the increment.
- DTIME
-
Time increment.
- CMNAME
-
User-specified material name or gasket behavior name, left justified. Some
internal creep models are given names starting with the
“ABQ_” character string. To avoid conflict,
you should not use “ABQ_” as the leading
string for CMNAME.
- LEXIMP
-
Explicit/implicit flag.
If LEXIMP=0, explicit creep integration is
being used and only DECRA(1) and
DESWA(1) need be defined;
DECRA(I) and
DESWA(I), I=2,5,
need not be defined.
If LEXIMP=1, implicit creep integration is
being used. The derivatives, DECRA(I) and
DESWA(I), I=2,5,
should be defined accurately to achieve rapid convergence of the solution.
- LEND
-
Start/end of increment flag.
If LEND=0, the routine is being called at the
start of the increment. In this case DECRA(1)
and DESWA(1) must be defined as the equivalent
creep and swelling rates calculated at the beginning of the increment,
multiplied by the time increment.
If LEND=1, the routine is being called at the
end of the increment. In this case DECRA(1) and
DESWA(1) must be defined as the equivalent creep
and swelling rates calculated at the end of the increment, multiplied by the
time increment. If applicable, the solution-dependent state variables
STATEV must be updated as well.
- COORDS(3)
-
An array containing the current coordinates of this point.
- NSTATV
-
Number of solution-dependent state variables associated with this material
or gasket behavior type (specified when space is allocated for the array; see
Allocating Space for Solution-Dependent State Variables).
- NOEL
-
Element number.
- NPT
-
Integration point number.
- LAYER
-
Layer number (for composite shells and layered solids).
- KSPT
-
Section point number within the current layer.
- KSTEP
-
Step number.
- KINC
-
Increment number.
Example: Hyperbolic Sine Creep Law
Suppose that we wish to model a metal using the creep behavior
where A, ,
and n are constants.
User subroutine CREEP can be coded as
follows:
SUBROUTINE CREEP(DECRA,DESWA,STATEV,SERD,EC,ESW,P,QTILD,
1 TEMP,DTEMP,PREDEF,DPRED,TIME,DTIME,CMNAME,LEXIMP,LEND,
2 COORDS,NSTATV,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME
C
DIMENSION DECRA(5),DESWA(5),STATEV(*),PREDEF(*),DPRED(*),
1 TIME(3),COORDS(*),EC(2),ESW(2)
C
C DEFINE CONSTANTS
C
A=
SIG0=
AN=
C
T1=EXP(QTILD/SIG0)
T2=EXP(−QTILD/SIG0)
DECRA(1) = A*(.5*(T1−T2))**AN*DTIME
IF(LEXIMP.EQ.1) THEN
DECRA(5) = AN*A*(.5*(T1−T2))**(AN−1.)*DTIME/
1 SIG0*.5*(T1+T2)
END IF
C
RETURN
END
The derivative
has been defined on the assumption that the subroutine will be used with
implicit integration.
|