General remarks on implicit time integration
To run an implicit analysis in LS-DYNA, you'll need at least a *CONTROL_IMPLICIT_GENERAL command to flag the solution as implicit and to set the step size.
It is strongly recommended that the latest DOUBLE PRECISION executable be used.
There are other *CONTROL_IMPLICIT_<option> commands that are used to override default settings. For example, *CONTROL_IMPLICIT_DYNAMICS would be used to make the implicit analysis dynamic rather than static.
If you want the code to automatically adjust the step size in accordance with the difficulty of achieving convergence, set IAUTO=1
See also https://www.dynasupport.com/howtos/implicit/implicit-convergence
Appendix P in the 971 LS-DYNA User's Manual discusses implicit analyses in LS-DYNA.
Numerous example problems illustrating implicit analysis are available at:
Not all LS-DYNA features and materials are available for implicit analysis. If you attempt to use an unimplemented feature, either the command will be ignored or, more commonly, the run will stop and an error message will be written. With each new release of the code, the list of features available for implicit analysis grows.
For more information on element formulations and materials available for implicit, see
Some general recommendations for implicit analysis are:
- Use element formulation 1 with hourglass type 6, or formulation 2. In versions 970 and higher, the hourglass type is automatically set to 6 with a coef. of 0.1 when ELFORM is 1.
- Use formulation 16 or formulation 6.
- For improved accuracy, set IRNXX to -2 and MITER to 2 (full iterative plasticity) using *CONTROL_SHELL.
- For plasticity models, prescribe a positive tangent modulus (no perfect plasticity).
- Note the flag for sticky contact (IGAP on Optional Card C of *CONTACT) which, by default, is set to 1. This creates some resistance to separation of surfaces in contact with the idea that solution convergence will be easier. A side effect of this sticky behavior is that the RCFORC data can be misrepresentative of the applied contact forces (including compressive forces). To remove this 'sticky' behavior of the contact, set IGAP=2.
- Contact behavior in implicit analysis can be very sensitive to the penalty scale factor (as compared to explicit analysis) because the time/load step is much larger in implicit than in explicit analysis. If convergence is proving to be difficult, the problem could be related to an inappropriate contact stiffness in which case increasing or decreasing the penalty scale factor by 1 or 2 orders of magnitude may be prudent.
- Set SNLOG on optional card B of *CONTACT to 1 (this is now done automatically)
- Set SHLTHK in *CONTROL_CONTACT to 2.
- Avoid initial penetrations!
- If automatic contact is used, set parallel consistency flag on (see *CONTROL_PARALLEL) even if run on a single processor.
See text file "https://www.dynasupport.com/howtos/implicit/implicit-contact" for additional information.
Failure to converge
- Enable automatic timestep control (*CONTROL_IMPLICIT_AUTO) and increase the number of stiffness matrix reformations allowed (MAXREF in *CONTROL_IMPLICIT_SOLUTION).
- Use non-automatic contacts with IGAP flag on Optional Card C of *CONTACT set to 1. Make sure contact segments are oriented properly. (ORIEN in *CONTROL_CONTACT may help in this regard but it's best not to depend on this function to be 100% reliable.)
- Check boundary conditions by running an eigenvalue analysis (see *CONTROL_IMPLICIT_EIGENVALUE). If rigid body modes are evident in the D3EIGV database then the structure may be inadequately constrained for a static analysis. Be aware that the eigenvalue analysis will not take into account any contact where there is an initial gap. Starting with version 970/rev. 5434, there is a *CONTROL_IMPLICIT_INERTIA_RELIEF command that can eliminate rigid body modes in a static analysis.
- Besides the above recommendations, try loosening the convergence tolerances using *CONTROL_IMPLICIT_NONLINEAR. To bypass the convergence criteria and force convergence for the current step, issue a sense switch "converge".
- Try running on only 1 processor.
- Use sense switch "ITER" to write a plot state for each convergence iteration. These plot states (written to database "D3ITER" may offer clues into the reason for divergence.
- Use sense switch "NLPRINT" or set NLPRINT to 1 in *CONTROL_IMPLICIT_SOLUTION so that convergence factors are printed for each iteration. It's useful to know if the convergence factors are steadily decreasing or oscillating madly.
- Use 2nd order objective stress update (see *CONTROL_ACCURACY).
- Negative eigenvalues are generally indicative of unconstrained rigid body modes, bad material properties, or large distortions. When adding constraints to inhibit rigid body modes, try to constrain a node in a region that displaces the least amount in the structure's fundamental mode.