specifying an analysis procedure for each step; and
prescribing loads, boundary conditions, and output requests for each
step.
Abaqus
distinguishes between general analysis steps and linear perturbation steps, and
you can include multiple steps in your analysis. You can control how prescribed
conditions are applied throughout each step. In addition, you can specify
the incrementation scheme used for controlling the solution,
the matrix storage and solution scheme in
Abaqus/Standard,
and
the precision level of the
Abaqus/Explicit
executable.
An analysis in
Abaqus
is defined using steps, analysis procedures, and optional history data.
Defining Steps
A basic concept in Abaqus is the division of the problem history into steps. A step
is any convenient phase of the history, such as thermal transient, creep hold, or dynamic
transient step. In its simplest form a step can be a static analysis in Abaqus/Standard of a load change from one magnitude to another. You can provide a description of each
step that appears in the data (.dat) file; this description is for
convenience only.
The step definition includes the type of analysis to be performed and
optional history data, such as loads, boundary conditions, and output requests.
Specifying the Analysis Procedure
For each step you choose an analysis procedure. This choice defines
the type of analysis to be performed during the step, such as static stress analysis,
dynamic stress analysis, eigenvalue buckling, and transient heat transfer analysis. The
available analysis procedures are described in Solving Analysis Problems. Only
one procedure is allowed per step.
Prescribing Loads, Boundary Conditions, and Output Requests
The step definition includes optional history data, such as loads, boundary
conditions, and output requests, as defined in
History Data.
For more information, see
Boundary Conditions ,
Loads,
and
About Output.
Details for prescribing these conditions are discussed in the individual
procedure sections.
General Analysis Steps Versus Linear Perturbation Steps
There are two kinds of steps in
Abaqus:
general analysis steps, which can be used to analyze linear or nonlinear
response, and linear perturbation steps, which can be used only to analyze
linear problems. General analysis steps can be included in an
Abaqus/Standard
or
Abaqus/Explicit
analysis; linear perturbation analysis steps are available only in
Abaqus/Standard.
In
Abaqus/Standard
linear analysis is always considered to be linear perturbation analysis about
the state at the time when the linear analysis procedure is introduced. This
linear perturbation approach allows general application of linear analysis
techniques in cases where the linear response depends on preloading or on the
nonlinear response history of the model. See
General and Perturbation Procedures
for more details.
Multiple Load Case Analysis
In general analysis steps
Abaqus/Standard
calculates the solution for a single set of applied loads. This is also the
default for linear perturbation steps. However, for static, direct steady-state
dynamic, and SIM-based steady-state dynamic
linear perturbation steps it is possible to find solutions for multiple load
cases. See
Multiple Load Case Analysis
for a description of this capability.
Multiple Steps
The analysis procedure can be changed from step to step in any meaningful way, so you have great
flexibility in performing analyses. Since the state of the model (stresses, strains,
temperatures, etc.) is updated throughout all general analysis steps, the effects of
previous history are always included in the response in each new analysis step. Thus, for
example, if natural frequency extraction is performed after a geometrically nonlinear static
analysis step, the preload stiffness is included. Linear perturbation steps have no effect
on subsequent general analysis steps.
The most obvious reason for using several steps in an analysis is to change analysis procedure
type. However, several steps can also be used as a matter of convenience—for example, to
change output requests, contact pairs in Abaqus/Explicit, boundary conditions, or loading (any information specified as history, or
step-dependent, data). Sometimes an analysis may have progressed to a point where the
present step definition needs to be modified. Abaqus provides for this contingency with the restart capability, where a step can be terminated
prematurely and a new step can be defined for the problem continuation (see Restarting an Analysis).
Optional history data (see Abaqus Model Definition) prescribing the
loading, boundary conditions, output controls, and auxiliary controls remains in effect for
all subsequent general analysis steps, including those that are defined in a restart
analysis, until they are modified or reset. Abaqus compares all loads and boundary conditions specified in a step with the loads and
boundary conditions in effect during the previous step to ensure consistency and continuity.
This comparison is expensive if the number of individually specified loads and boundary
conditions is very large. Hence, the number of individually specified loads and boundary
conditions should be minimized, which can usually be done by using element and node sets
instead of individual elements and nodes. For linear perturbation steps only the output
controls are continued from one linear perturbation step to the next if there are no
intermediate general analysis steps and the output controls are not redefined (see About Output).
Within
Abaqus/Standard
or
Abaqus/Explicit,
any combination of available procedures can be used from step to step. However,
Abaqus/Standard
and
Abaqus/Explicit
procedures cannot be used in the same analysis. See
About Transferring Results between Abaqus Analyses
for information on importing results from one type of analysis to another.
Defining Time Varying Prescribed Conditions
By default,
Abaqus
assumes that external parameters, such as load magnitudes and boundary
conditions, are constant (step function) or vary linearly (ramped) over a step,
depending on the analysis procedure, as shown in
Table 1.
Some exceptions in
Abaqus/Standard
are discussed below.
Table 1. Default amplitude variations for time domain procedures.
Step (exception: Ramp if quasi-static
application type is specified)
Fully coupled thermal-electrical-structural in
Abaqus/Standard
(steady-state)
Ramp
Fully coupled thermal-electrical-structural in
Abaqus/Standard
(transient)
Step
Fully coupled thermal-stress in
Abaqus/Standard
(steady-state)
Ramp
Fully coupled thermal-stress in
Abaqus/Standard
(transient)
Step
Fully coupled thermal-stress in
Abaqus/Explicit
Step
Magnetostatic
Ramp
Mass diffusion (steady-state)
Ramp
Mass diffusion (transient)
Step
Quasi-static
Step
Static
Ramp
Steady-state transport
Ramp
Transient eddy current
Step
Transient modal dynamic
Step
Uncoupled heat transfer
Ramp
Uncoupled heat transfer (transient)
Step
No default amplitude variation is defined for a direct cyclic analysis step;
for each applied load or boundary condition, the amplitude must be defined
explicitly.
Additional Default Amplitude Variations in Abaqus/Standard
For displacement or rotation degrees of freedom prescribed in
Abaqus/Standard
using displacement-type boundary conditions or displacement-type connector
motions, the default amplitude variation is a ramp function for all procedure
types; the default amplitude is a step function for all procedure types when
using velocity-type boundary conditions or velocity-type connector motions.
For motions prescribed using a predefined displacement field, the default
amplitude variation is a ramp function for all procedure types; the default
amplitude is a step function when using a predefined velocity field for all
procedures except steady-state transport.
The default amplitude variation is a step function for fluid flux loading in
all procedure types.
When a displacement or rotation boundary condition is removed, the
corresponding reaction force or moment is reduced to zero according to the
amplitude defined for the step. When film or radiation loads are removed, the
variation is always a step function.
Prescribing Nondefault Amplitude Variations
You can define complicated time variations of loadings, boundary conditions,
and predefined fields by referring to an amplitude curve in the prescribed
condition definition (see
Amplitude Curves).
User subroutines are also provided in
Abaqus/Standard
and
Abaqus/Explicit
for coding general loadings (see
About User Subroutines and Utilities).
In
Abaqus/Standard
you can change the default amplitude variation for a step (except the removal
of film or radiation loads, as noted above).
Boundary Conditions in Abaqus/Explicit
Boundary conditions applied during an explicit dynamic response step should use appropriate
amplitude references to define the time variation. If boundary conditions are specified
for the step without amplitude references, they are applied instantaneously at the
beginning of the step. Since Abaqus/Explicit does not admit jumps in displacement, the value of a nonzero displacement boundary
condition that is specified without an amplitude reference is ignored, and a zero
velocity boundary condition is enforced.
Prescribing Nondefault Amplitude Variations in Transient Procedures in Abaqus/Standard
The default amplitude is a step function for transient analysis procedures (fully coupled
thermal-stress, fully coupled thermal-electrical-structural, coupled thermal-electrical,
direct-integration dynamic, uncoupled heat transfer, and mass diffusion). You should
exercise care when the nondefault ramp amplitude variation is specified for transient
analysis procedures since unexpected results might occur. For example, if a step of a
transient heat transfer analysis uses the ramp amplitude variation and temperature
boundary conditions are removed in a subsequent step, the reaction fluxes generated in
the previous step are instantaneously set to zero.
Incrementation
Each step in an
Abaqus
analysis is divided into multiple increments. In most cases you have two
choices for controlling the solution: automatic time incrementation or
user-specified fixed time incrementation. Automatic incrementation is
recommended for most cases. The methods for selecting automatic or direct
incrementation are discussed in the individual procedure sections.
The issues associated with time incrementation in
Abaqus/Standard
and
Abaqus/Explicit
are quite different, since time increments are generally much smaller in
Abaqus/Explicit.
Incrementation in Abaqus/Standard
In nonlinear problems Abaqus/Standard increments and iterates as required to analyze a step, depending on the severity of the
nonlinearity. In transient cases with a physical time scale, you can provide parameters to
indicate a level of accuracy in the time integration, and Abaqus/Standard chooses the time increments to achieve this accuracy. Direct user control is provided
because it can sometimes save computational cost in cases where you are familiar with the
problem and know a suitable incrementation scheme. Direct control can also occasionally be
useful when automatic control has trouble with convergence in nonlinear problems.
Specifying the Maximum Number of Increments
You can define the upper limit to the number of increments in an Abaqus/Standard analysis. In a direct cyclic analysis procedure, this upper limit should be set to
the maximum number of increments in a single loading cycle. The default is 100. The
analysis stops if this maximum is exceeded before the complete solution for the step has
been obtained. To arrive at a solution, it is often necessary to increase the number of
increments allowed by defining a new upper limit.
Extrapolation of the Solution
In nonlinear analyses
Abaqus/Standard
uses extrapolation to speed up the solution. Extrapolation refers to the method
used to determine the first guess to the incremental solution. The guess is
determined by the size of the current time increment and by whether linear,
displacement-based parabolic, velocity-based parabolic, or no extrapolation of
the previously attained history of each solution variable is chosen.
Displacement-based parabolic extrapolation is not relevant for Riks analyses,
and velocity-based parabolic extrapolation is available only for
direct-integration dynamic procedures. Linear extrapolation (the default for
all procedures other than a direct-integration dynamic procedure using the
transient fidelity application setting) uses 100% extrapolation (1% for the
Riks method) of the previous incremental solution at the start of each
increment to begin the nonlinear equation solution for the next increment. No
extrapolation is used in the first increment of a step.
In some cases extrapolation can cause
Abaqus/Standard
to iterate excessively; some common examples are abrupt changes in the load
magnitudes or boundary conditions and if unloading occurs as a result of
cracking (in concrete models) or buckling. In such cases you should suppress
extrapolation.
Displacement-based parabolic extrapolation uses two previous incremental
solutions to obtain the first guess to the current incremental solution. This
type of extrapolation is useful in situations when the local variation of the
solution with respect to the time scale of the problem is expected to be
quadratic, such as the large rotation of structures. If parabolic extrapolation
is used in a step, it begins after the second increment of the step: the first
increment employs no extrapolation, and the second increment employs linear
extrapolation. Consequently, slower convergence rates may occur during the
first two increments of the succeeding steps in a multistep analysis.
Velocity-based parabolic extrapolation uses the previous displacement
incremental solution to obtain the first guess to the current incremental
solution. It is available only for direct-integration dynamic procedures, and
it is the default if the transient fidelity application setting is specified as
part of this procedure (see
Implicit Dynamic Analysis Using Direct Integration).
This type of extrapolation is useful in situations with smooth solutions—i.e.,
when velocities do not display so called “saw tooth” patterns—and in such cases
it may provide a better first guess than other extrapolations. If
velocity-based parabolic extrapolation is used in a step, it begins after the
first increment of the step; the first increment employs initial velocities.
Incrementation in Abaqus/Explicit
The time increment used in an Abaqus/Explicit analysis must be smaller than the stability limit of the central-difference operator
(see Explicit Dynamic Analysis); failure to use a small enough time
increment results in an unstable solution. Although the time increments chosen by Abaqus/Explicit generally satisfy the stability criterion, user control over the size of the time
increment is provided to reduce the chance of a solution going unstable. The small
increments characteristic of an explicit dynamic analysis product make Abaqus/Explicit well suited for nonlinear analysis.
Severe Discontinuities in Abaqus/Standard
Abaqus/Standard distinguishes between regular, equilibrium iterations (in which the solution varies
smoothly) and severe discontinuity iterations (SDIs) in
which abrupt changes in stiffness occur. The most common of such severe discontinuities
involve open-close changes in contact and stick-slip changes in friction. By default, Abaqus/Standard continues to iterate until the severe discontinuities are sufficiently small (or no
severe discontinuities occur) and the equilibrium (flux) tolerances are satisfied.
Alternatively, you can choose a different approach in which Abaqus/Standard continues to iterate until no severe discontinuities occur.
For contact openings with the default approach, a force discontinuity is
generated when the contact force is set to zero, and this force discontinuity
leads to force residuals that are checked against the time average force in the
usual way, as described in
Convergence Criteria for Nonlinear Problems.
Similarly, in stick-to-slip transitions the frictional force is set to a lower
value, which also leads to force residuals.
For contact closures a severe discontinuity is considered sufficiently small
if the penetration error is smaller than the contact compatibility tolerance
times the incremental displacement. The penetration error is defined as the
difference between the actual penetration and the penetration following from
the contact pressure and pressure-overclosure relation. In cases where the
displacement increment is essentially zero, a “zero penetration” check is used,
similar to the check used for zero displacement increments (see
Convergence Criteria for Nonlinear Problems).
The same checks are used for slip-to-stick transitions in Lagrange friction.
To make sure that sufficient accuracy is obtained for contact between hard
bodies, it is also required that the estimated contact force error is smaller
than the time average force times the contact force error tolerance. The
estimated contact force error is obtained by multiplying the penetration by an
effective stiffness. For hard contact this effective stiffness is equal to the
stiffness of the underlying element, whereas for softened/penalty contact the
effective stiffness is obtained by adding the compliance of the contact
constraint and the underlying element.
Forcing the iteration process to continue until no severe discontinuities
occur is the more traditional, conservative method. However, this method can
sometimes lead to convergence problems, particularly in large problems with
many contact points or situations where contact conditions are only weakly
determined. In such cases excessive iteration may occur and convergence may not
be obtained.
Matrix Storage and Solution Scheme in Abaqus/Standard
Abaqus/Standard generally uses Newton's method to solve nonlinear problems and the stiffness method to
solve linear problems. In both cases the stiffness matrix is required. In some problems—for
example, with Coulomb friction—this matrix is not symmetric. Abaqus/Standard automatically chooses whether a symmetric or unsymmetric matrix storage and solution
scheme is used based on the model and step definition used. In some cases you can override
this choice; the rules are explained below.
Usually it is not necessary to specify the matrix storage and solution scheme. The choice is
available to improve computational efficiency in those cases where you judge that the
default value is not the best choice. In certain cases where the exact tangent stiffness
matrix is not symmetric, the extra iterations required by a symmetric approximation to the
tangent matrix use less computer time than solving the nonsymmetric tangent matrix at each
iteration. Therefore, for example, Abaqus/Standard invokes the symmetric matrix storage and solution scheme automatically in problems with
Coulomb friction where every friction coefficient is less than or equal to 0.2, even though
the resulting tangent matrix has some nonsymmetric terms. However, if any friction
coefficient is greater than 0.2, Abaqus/Standard uses the unsymmetric matrix storage and solution scheme automatically since it may
significantly improve the convergence history. This choice of the unsymmetric matrix storage
and solution scheme considers changes to the friction model. Thus, if you modify the
friction definition during the analysis to introduce a friction coefficient greater than
0.2, Abaqus/Standard activates the unsymmetric matrix storage and solution scheme automatically. In cases in
which the unsymmetric matrix storage and solution scheme is selected automatically, you must
explicitly turn it off if so desired; it is recommended to do so if friction prevents any
sliding motions.
Rules for Using the Unsymmetric Matrix Storage and Solution Scheme
The following rules apply to matrix storage and solution schemes in
Abaqus/Standard:
Since Abaqus/Standard provides eigenvalue extraction only for symmetric matrices, steps with
eigenfrequency extraction or eigenvalue buckling prediction procedures always use the
symmetric matrix storage and solution scheme. You cannot change this setting. In such
steps Abaqus/Standard symmetrizes all contributions to the stiffness matrix.
In all steps except those with eigenfrequency extraction or eigenvalue
buckling procedures,
Abaqus/Standard
uses the unsymmetric matrix storage and solution scheme when any of the
following features are included in the model. You cannot change this setting.
Heat transfer convection/diffusion elements (element types DCCxxx)
By default, the unsymmetric matrix storage and solution scheme is used
for the complex eigenvalue extraction procedure. You can change this setting.
In all other cases you can control whether a symmetric or a full matrix
storage and arithmetic solution is chosen. If you do not specify the matrix
storage and solution scheme,
Abaqus/Standard
utilizes the value used in the previous general analysis step.
If you do not specify the matrix storage and solution scheme in the first step of an analysis,
Abaqus/Standard chooses the unsymmetric scheme when any of the following are used:
Any
Abaqus/Aqua
load type
The concrete damaged plasticity material model
Friction with a friction coefficient greater than 0.2
The default value in the first step is the symmetric scheme for all
other cases, except those covered by rules 2 and 3 above and for cases in which
a friction coefficient is increased above 0.2 after the first step.
For radiative heat transfer surface interactions (Thermal Contact Properties),
certain follower forces (such as concentrated follower forces or moments),
three-dimensional finite-sliding analyses, any finite sliding in coupled pore
fluid diffusion/stress analyses, and certain material models (particularly
nonassociated flow plasticity models and concrete) introduce unsymmetric terms
in the model's stiffness matrix. However,
Abaqus/Standard
does not automatically use the unsymmetric matrix storage and solution scheme
when radiative heat transfer surface interactions are used. Specifying that the
unsymmetric scheme should be used can sometimes improve convergence in such
cases.
Coupled structural-acoustic and uncoupled acoustic analysis procedures
in
Abaqus/Standard
generally use symmetric matrix storage and solution. Exceptions are the
subspace-based steady-state dynamics or complex frequency procedures used for
coupled structural-acoustic problems, where unsymmetric matrices are a
consequence of the coupling procedure used in these cases. Using acoustic
infinite elements or the acoustic flow velocity option triggers the unsymmetric
matrix storage and solution scheme in
Abaqus/Standard,
except for natural frequency extraction using the Lanczos eigensolver, which
uses symmetric matrix operations.
Unsymmetric matrix storage doubles the storage requirement for element operators and
for the equation solver compared to symmetric storage. These are generally the largest
components of the overall memory requirements for the analysis.
Precision Level of the Abaqus/Explicit Executable
You can choose a double-precision executable (with 64-bit word lengths) for
Abaqus/Explicit
on machines with a default, single-precision word length of 32 bits (see
Abaqus/Standard and Abaqus/Explicit Execution).
Most new computers have 32-bit default word lengths even though they may have
64-bit memory addressing. The single-precision executable typically results in
a CPU savings of 20% to 30% compared to the double-precision executable, and
single precision provides accurate results in most cases. Exceptions in which
single precision tends to be inadequate include analyses that require greater
than approximately 300,000 increments, have typical nodal displacement
increments less than 10−6 times the corresponding nodal coordinate
values, include hyperelastic materials, or involve multiple revolutions of
deformable parts; the double-precision executable is recommended in these cases
(for example, see
Simulation of propeller rotation).
You can also run only a part of
Abaqus/Explicit
using double precision, while using single precision for the rest (see
Abaqus/Standard and Abaqus/Explicit Execution).
These options are described below.
If
double=explicit
is used or the double option is specified without a
value, the Abaqus/Explicit analysis runs in double precision, while the packager runs in single precision. While
this choice would satisfy higher precision needs in most analyses, the data are written
to the state (.abq) file in single precision. Moreover,
analysis-related computations performed in the packager are still run in single
precision. Thus, new steps, restart, and import analyses begin from data that are
stored/computed in single precision despite the fact that calculations during the step
are performed in double precision. Thus, in general,you can expect somewhat noisy
solutions at the beginning of the first step, at step transitions, on restart, and after
import.
If
double=both
is used, both the Abaqus/Explicit packager and analysis run in double precision. This is the most expensive option but
ensures the highest overall execution precision. Analysis database floating point data
are written to the state (.abq) file at the end of packager or of a
given step in double precision, thus ensuring in most cases the smoothest transition at
step boundaries, on restart, and after an import.
There may be cases where the default single precision analysis is
inadequate, while the
double=both
option is too expensive. These are typically models that have complex links of
constraints (such as a complex mechanism with connector elements, complex
combinations of distributed/kinematic couplings, tie constraints and
multi-point constraints, or interactions of such constraints with boundary
conditions). For such models it is desirable to solve only the constraints in
the model in double precision while the rest of the model is solved in single
precision. This combination gives the desired accuracy of the solution while
increasing performance compared to a full double precision analysis.
If
double=constraint
is used, the constraint packager and constraint solver are executed in double
precision, while the remainder of the
Abaqus/Explicit
packager and analysis are executed in single precision.
If
double=off
is used or the double option is omitted (default),
both the Abaqus/Explicit packager and the analysis run in single precision. The
double=off
option is useful when you want to override the setting in the environment file.
The significance of the precision level is indicated by comparing the
solutions obtained with single and double precision. If no significant
difference is found between single- and double-precision solutions for a
particular model, the single-precision executable can be deemed adequate.