Implicit vs. explicit schemes in Abaqus
In the FEA solver world, users come across multiple numerical schemes to solve the formulated stiffness matrix of the problem. The most popular ones among all are the implicit and explicit solvers. In Abaqus terminology they are called a standard solver and explicit solver respectively. Each of these schemes has its own merits and demerits and this blog post compares these two schemes based on several parameters.
For ease of understanding, I am avoiding the use of long and complicated mathematical equations in this post. 😉
Implicit Scheme
From an application perspective, this scheme is primarily used for static problems that do not exhibit severe discontinuities. Let’s take an example of the simplest problem: Linear static in which any physical situation can be mathematically formulated as:
[K]{x}={F}
Here K is the stiffness matrix, x is the displacement vector and F is the load vector. The size of the matrix and vectors can vary depending on the dimensionality of the problem. For example, K can be a 6×6 matrix for a 3D continuum problem or a 3×3 matrix for a 2D structural problem. The composition of K is primarily governed by material properties. F primarily includes forces and moments at each node of the mesh. Now, to solve the above equation for x, matrix K should be inverted or inversed. After inversion, we get a displacement solution used to compute other variables, such as strains, stresses, and reaction forces.
[M]d2{x}/dt2+[C]d{x}/dt+[K]{x}={F}
The Implicit scheme is applicable to dynamic problems as well. In the above equation, M is mass matrix, C is damping matrix and the rest are as usual. This equation is defined in real time. Backward Euler time integration is used to discretize this equation in which the state of a system at a given time increment depends on the state of the system at later time increment. K matrix inversion takes place in a dynamic scenario as well because the objective is still to solve for x. Abaqus standard solver uses three different approaches to solve implicit dynamic problems: quasi static, moderate dissipation or transient fidelity. Each method is recommended for specific types of non-linear dynamic behavior. For example, the quasi static method works well in problems with severe damping.
Merits of this scheme
- For linear problems, in which K is a constant, implicit scheme provides solution in a single increment.
- For non-linear problems, in which K is a function of x, thereby making it necessary to solve problem in multiple increments for sake of accuracy, size of each increment can be considerably large as this scheme is unconditionally stable.
Due to these reasons, implicit scheme is preferred to simulate linear/non-linear static problems that are slow or moderate in nature with respect to time.
Demerits of this scheme
- The matrix inversion process itself is computationally intensive. In the case of large non-linear models, this inversion takes place across a very large number of nodes and in multiple increments on each node. The speed of simulation is somewhat compromised unless dedicated HPC clusters are utilized for computation.
- Under-constrained problems often end up with a singularity error which means inverse of stiffness matrix K does not exist. User should be very precise in applying correct boundary conditions to the model.
- Non-Linear problems that are severely discontinuous in nature either struggle in convergence or do not converge at all. Numerically it means the solution goes through multiple cut-backs thereby reducing increment size as the simulation proceeds. As each increment is computationally expensive, this scheme may not remain viable after certain number of cut backs.
Explicit Scheme
This scheme is utilized in dynamic problems only that have both mass and stiffness matrices defined, either linear or non-linear. Forward Euler discretization scheme is used in which state of system at a given time increment is computed from state of system at previous time increment. If the initial state is well defined, solution marches forward in time without the need of K matrix inversion. Due to this reason, each increment of explicit scheme is relatively inexpensive compared to implicit increment of a similar size model.
Merits of this scheme
- This method is perfect to model severely discontinuous boundary condition problems. For example, number of objects moving on a fast conveyer belts leading to numerous collisions. Such a problem will never converge in an implicit scheme but can be modeled in explicit scheme.
Stable problem = guarantee of convergence
- Very short duration extreme events in the range of micro to milliseconds such as a drop test or crash test are good candidates for an explicit rather than implicit scheme. To capture the dynamics of such an extreme event, thousands of increments of very small size are needed. The explicit method is the most efficient way in such a scenario due to less expensive increment from calculation perspective.
- This method is also suitable to model otherwise static problems that do not converge in implicit scheme due to very large deformations such as those encountered in metal forming processes.
De-merits of this scheme
- This scheme is only conditionally stable. There is a critical time increment beyond which the error of discretization becomes unbounded and solution just blows off. In Abaqus, it is possible to define critical time increment either globally or element by element basis. However, in either case critical time increment depends on mesh size and material associated with the mesh. There is a technique called “mass scaling” that can be used to artificially increase this value but should be used with caution to prevent artificial inertia effects.
Summary: It may be incorrect to say that one scheme is superior to the other. One is more robust (implicit) while other is more versatile (explicit). An experienced analyst knows well how to make a correct choice based on the physics of the problem. An incorrect choice means either the problem will not get solved or will get solved in a very inefficient manner.
Do you often struggle with convergence problems in your models? Do you wish to know which scheme would be most efficient in solving your Abaqus problems? If yes, please reach out to us for information on dedicated training session on these numerical schemes.