There are two classical solution methods available in LS-DYNA to solve a given problem. The widely popular â€œExplicitâ€? solution scheme, using the central-difference method, is applied to short-duration transient dynamic problems while the â€œImplicitâ€? solution scheme is used for static problems. Both of these methods have their advantages and disadvantages which depend entirely on the problem at hand. The Explicit approach of using small timesteps to â€œmarch forwardâ€? is ideal for solving short-duration transient dynamic problems and requires a relatively small amount of memory to solve even very large problems. The Implicit method is ideal for solving static or low-strain rate problems but has large memory requirements that increase exponentially with problem size. Improvements in LS-DYNA allow seamless switching between the two solution schemes allowing the user to choose the best method for a given problem.

The IMFLAG parameter in *CONTROL_IMPLICIT_GENERAL is a single parameter with multiple options that allows the user to choose the solution method either statically or dynamically as a function of several variables. By default IMFLAG is set to â€œ0â€? which instructs LS-DYNA to use the Explicit method. Changing IMFLAG to â€œ1â€? switches the solution type to Implicit with non-linear geometry and material. All necessary Implicit dependent parameters are defined using *CONTROL_IMPLICIT_{*OPTION*} keywords. The values â€œ0â€? and â€œ1â€? for IMFLAG are static values meaning that for the duration of the run, a single solution method is used.

** 1. Seamless Springback Calculation, IMFLAG = 2**

To enable seamless springback calculation using Implicit solution type after a dynamic run, IMFLAG can be set to â€œ2â€?. When IMFLAG=2, and when the simulation time reaches ENDTIM (set in *CONTROL_TERMINATION), LS-DYNA switches to Implicit and continues the calculation until the simulation time reaches either NSBS*DT0 or 2*ENDTIM (if DT0=0.0 in *CONTROL_IMPLICIT_GENERAL). It is important to note that IMFLAG=2 is designed for â€œspringbackâ€? calculations, so all contact-impact definitions are turned off. The following figure shows the solution type switch when IMFLAG=2:

**2.Implicit/Explicit Switch, IMFLAG = 4,5 **

Options 4 and 5 are very similar with a small variation in how the last solution step is solved. When IMFLAG=4 or 5, the solution begins using Implicit, and all necessary control parameters are read from the *CONTROL_IMPLICIT_{*OPTION*} keywords present in the input file. When the maximum number of stiffness reformations (MAXREF specified in *CONTROL_IMPLICIT_SOLUTION) is reached in the current iterative step *or* when other forms of instability arise that prevent the iterative solution from converging within allowable tolerances of displacement or energy norms, LS-DYNA automatically switches to Explicit and runs for a time specified by DT_EXP in *CONTROL_IMPLICIT_AUTO. After this Explicit interval, LS-DYNA switches back to Implicit and continues the calculation (hopefully with improved convergence). The value of DT_EXP should be chosen such that it runs for a sufficient number of cycles using either the internally computed timestep or a mass-scaled timestep specified using DT2MS in *CONTROL_TIMESTEP. The difference between options 4 and 5 is that when IMFLAG=5, LS-DYNA ensures that the last step is always solved using Implicit so that a static solution is obtained. If the termination time ENDTIM is reached during the DT_EXP interval, LS-DYNA automatically extends the termination time by DT0 until a converged Implicit step is obtained.

**3. Intermittent Eigenvalue Extration, IMFLAG = 6.**

For IMFLAG=6, LS-DYNA uses Explicit and allows the extraction of eigenvalues intermittently throughout the simulation. To define the times at which the eigenvalue extraction is performed, the parameter NEIGV in *CONTROL_IMPLICIT_EIGENVALUE must be set to a negative number. The absolute value of NEIGV then refers to a load curve ID (see LCID in *DEFINE_CURVE) which allows the user to define the number of eigenvalues as a function of simulation time. It should be noted that the abscissa axis refers to time that can be either pseudo or transient beginning in LS-DYNA version 971R3 allowing users to extract eigenvalues even in the dynamic relaxation phase. Negative abscissa values correspond to pseudo time, and positive values correspond to the transient portion of the simulation. It is also important to note that a user can extract intermittent eigenvalues during the Implicit solution by setting IMFLAG=1 and using a negative value for NEIGV. In versions prior to 971R3, the abscissa points were not treated as key-points such that the Implicit timestep is automatically adjusted to meet the time specified in NEIGV curve. For example, if DT0=0.2 and the current converged step is at 1.0 seconds, then an abscissa point in NEIGV of 1.1 will be skipped without any eigenvalue extraction. To force the implicit solver to auto-adjust the timestep such that the abscissa time point in NEIGV is met, it is recommended that the parameter DTMAX in *CONTROL_IMPLICIT_AUTO is used. However, in versions 971R3 and higher, the points specified in NEIGV will be treated as key points and the solver will auto-adjust the timestep to solve at the points and extract the eigenvalues. A sample curve for intermittent eigenvalue extraction using NEIGV is shown in the following figure:

**4. User-Defined Solution, IMFLAG < 0**

The last option for IMFLAG is the specification of a negative number in which case the abs(IMFLAG) refers to a load curve ID that defines the solution type (ordinate) as a function of the simulation time (abscissa). This option provides significant control to the user, and with good domain knowledge for a given problem, it can be used for strategic switching of formulations to get the desired response. This option is also ideal for solving multi-stage problems where each stage can take advantage of either Implicit or Explicit depending on the loading conditions. To illustrate the use of this option, we can consider the simple example of a ball impacting a tennis racket. The problem can be divided into three separate stages as follows:

- Ball inflation to initial internal pressure
- Pre-stressing of racket strings
- Inflated ball impacting pres-stressed racket

The first two stages can be idealized as static or quasi-static with negligible dynamic influence while the last stage can be idealized as a short-duration transient dynamic problem. Using a single solution type for the above three methods is possible but clearly may not be a very efficient and accurate approach. Using IMFLAG as a negative number, we can specify the use of Implicit to solve the first two stages and the use of Explicit for the last stage.