24 KiB
Co-simulation
The co-simulation technique is a multiphysics capability for run-time coupling of Abaqus and another analysis program. An Abaqus analysis can be coupled to another Abaqus analysis or to a third-party analysis program to perform multidisciplinary simulations and multidomain (multimodel) coupling.
The co-simulation technique is described in the following sections:
• “Co-simulation: overview,” Section 17.1.1
• “Preparing an Abaqus analysis for co-simulation,” Section 17.2.1
• “Structural-to-structural co-simulation,” Section 17.3.1
• “Fluid-to-structural and conjugate heat transfer co-simulation,” Section 17.3.2
• “Electromagnetic-to-structural and electromagnetic-to-thermal co-simulation,” Section 17.3.3
• “Executing a co-simulation,” Section 17.3.4
• “Structural-to-logical co-simulation,” Section 17.4.1
6.1.2 DEFINING AN ANALYSIS
Overview
An analysis is defined in Abaqus by:
• dividing the problem history into steps;
• 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.
Defining an analysis
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—a thermal transient, a creep hold, a dynamic transient, etc. In its simplest form a step can be just a static analysis in Abaqus/Standard of a load change from one magnitude to another. You can provide a description of each step that will appear 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.
Input File Usage: Use the first option to begin a step and the second option to end a step:
*STEP
*END STEP
The optional data lines on the *STEP option can be used to specify the step description. The first data line given appears in the data (.dat) file.
Abaqus/CAE Usage: Step module: Create Step: Description
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: static stress analysis, dynamic stress analysis, eigenvalue buckling, transient heat transfer analysis, etc. The available analysis procedures are described in “Solving analysis problems: overview,” Section 6.1.1. Only one procedure is allowed per step.
Input File Usage: The procedure definition option must immediately follow the *STEP option.
Abaqus/CAE Usage: Step module: Create Step: choose the procedure type
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” in “Defining a model in Abaqus,” Section 1.3.1. For more information, see “Boundary conditions,” Section 34.3; “Loads,” Section 34.4; and “Output,” Section 4.1.
Details for prescribing these conditions are discussed in the individual procedure sections.
Input File Usage: The optional history data are defined following the procedure definition within a *STEP block.
Abaqus/CAE Usage: You define history data (step-dependent objects) in the Interaction module, Load module, and Step module.
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 linear perturbation procedures,” Section 6.1.3, 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,” Section 6.1.4, 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 will be 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, whereby a step can be terminated prematurely and a new step can be defined for the problem continuation (see “Restarting an analysis,” Section 9.1.1).
Optional history data (see “Defining a model in Abaqus,” Section 1.3.1) prescribing the loading, boundary conditions, output controls, and auxiliary controls will remain in effect for all subsequent general analysis steps, including those that are defined in a restart analysis, until they are modified or reset. Abaqus will compare 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 “Output,” Section 4.1.1).
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 “Transferring results between Abaqus analyses: overview,” Section 9.2.1, 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 6.1.2–1. Some exceptions in Abaqus/Standard are discussed below.
Table 6.1.2–1 Default amplitude variations for time domain procedures.
| Procedure | Default amplitude variation |
| Coupled pore fluid diffusion/stress (steady-state) | Ramp |
| Coupled pore fluid diffusion/stress (transient) | Step |
| Coupled thermal-electrical (steady-state) | Ramp |
| Coupled thermal-electrical (transient) | Step |
| Direct-integration dynamic | 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 |
| Procedure | Default amplitude variation |
| 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 |
| Incompressible flow | 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,” Section 34.1.2). User subroutines are also provided in Abaqus/Standard and Abaqus/Explicit for coding general loadings (see “User subroutines: overview,” Section 18.1.1).
In Abaqus/Standard you can change the default amplitude variation for a step (except the removal of film or radiation loads, as noted above).
Input File Usage: In Abaqus/Standard use the following option to change the default amplitude variation for a step:
*STEP, AMPLITUDE=STEP or RAMP
Abaqus/CAE Usage: In Abaqus/Standard use the following input to change the default amplitude variation for a step:
Step module: step editor: Other: Default load variation with time: Instantaneous or Ramp linearly over step
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 will be ignored, and a zero velocity boundary condition will be 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). Care should be exercised when the nondefault ramp amplitude variation is specified for transient analysis procedures since unexpected results may 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 will be ramped to zero from their initial values over the duration of the step. Therefore, heat flux will continue to flow through the affected boundary nodes over the entire subsequent step even though the temperature boundary conditions were removed.
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, Abaqus/Explicit, and Abaqus/CFD analyses are quite different. The time increments are generally much smaller in Abaqus/Explicit than in Abaqus/Standard, while the time increments for Abaqus/CFD may be similar to those in Abaqus/Standard in many situations.
Incrementation in Abaqus/Standard
In nonlinear problems Abaqus/Standard will increment and iterate as necessary 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 will choose 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 will stop 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.
Input File Usage: *STEP, INC=n
Abaqus/CAE Usage: Step module: step editor: Incrementation: Maximum number of increments
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,” Section 6.3.2). 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.
| Input File Usage: | Use the following option to choose linear extrapolation:*STEP, EXTRAPOLATION=LINEAR (default for all procedures other than a direct-integration dynamic procedure using the transient fidelity application setting)Use the following option to choose displacement-based parabolic extrapolation:*STEP, EXTRAPOLATION=PARABOLICUse the following option to choose velocity-based parabolic extrapolation:*STEP, EXTRAPOLATION=VELOCITY PARABOLIC (default for a direct-integration dynamic procedure using the transient fidelity application setting)Use the following option to choose no extrapolation:*STEP, EXTRAPOLATION= NO |
| Abaqus/CAE Usage: | Step module: step editor: Other: Extrapolation of previous state at start of each increment: Linear, Parabolic, Velocity parabolic, None, or Analysis product default |
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,” Section 6.3.3); failure to use a small enough time increment will result 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 will continue 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 will continue 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,” Section 7.2.3. 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,” Section 7.2.3). 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
Input File Usage: *STEP, CONVERT SDI=NO
Abaqus/CAE Usage: Step module: step editor: Other: Convert severe discontinuity iterations: Off
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 needed. In some problems—for example, with Coulomb friction—this matrix is not symmetric. Abaqus/Standard will automatically choose whether a symmetric or unsymmetric matrix storage and solution scheme should be 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