You are on page 1of 3

The solver’s job

what is an FEA solver?

Basically, every FEA software is composed of 3 parts the Pre, the Post and the solver.
As the pre and the post can be found through the user interface, we understand
generally easily what it represents, but the solver remains a bit mysterious…hidden
behind the interface to solve all the problems ;-)

The job of the PRE (process) is to create the model, the preparation of the geometry,
of the mesh, the definition of the properties, the materials, the loads and the
boundary conditions.

Then, a text file which includes all these data under a specific standard format
(generally Nastran) is generated and send to the solver.

The job of the solver is to take these input data, to process them using specific
algorithms (I will detail that a bit later) and to give an output that correspond to the
result of the analysis.

These data are then sent back to the POST (process) which will “open the package”
and display the data in a form that will be understandable for the user (contours,
graphs, tables,…).

So in fact the solver is kind of the “Brain” of the software. It contains all the algorithms
that will be able to decompose and process the input data to get the results needed.

Ok this is nice to explain all that….but how does it work ?

Here finally comes an interesting question ;-)

Let me explain how it works in midas NFX !


A system of equation solver is used not only for linear static structural analysis, but
also for all other types of analyses such as eigenvalue, buckling, dynamic and nonlinear
analyses.

Generally, two types of solvers exist: a direct solver, which is based on the Gauss
elimination or LU decomposition; and an iterative solver in which errors are minimized
and solutions are converged through iterative calculations.

A direct solver is widely used in structural analysis because finding solutions is stable
without being affected by the numerical characteristics of the matrix. But it rapidly
tends to demand a significant memory space and a large amount of calculations for a
large problem in which case an iterative solver requiring relatively less memory is
more desirable.

For structural analysis, however, it must be cautioned that an iterative solver may not
provide the desired solutions due to the numerical characteristics of the matrix, or the
amount of iterative calculations may become significant in arriving at converged
solutions. midas NFX provides a function that automatically selects between the direct
solver and iterative solver depending on the scale of the problem required to be
analyzed.

A direct solver obtains the solutions to a system of equations in two steps. The first
step involves matrix decomposition, and the second step pertains to the forward-
backward substitution (FBS) process. The LU decomposition method, which is applied
to a general asymmetrical matrix, can be applied to decompose a matrix in the
following form in the case of symmetrical stiffness matrix, K , generated in the process
of finite element analysis.

The important aspect of using a direct solver is to properly use the sparsity of a matrix.
Generally, the stiffness matrix, K , generated in the process of finite element analysis
is a sparse matrix containing numerous 0 terms, and the amount of calculations and
required memory space significantly change depending on the method of utilizing the
sparsity. midas NFX supports a dense solver for solving a general dense matrix, which
does not utilize the sparsity of the matrix. In addition, midas NFX supports a multi-
frontal solver as the basic direct solver, which can remarkably reduce the amount of
calculations and memory space while appropriately utilizing the sparsity of the matrix.
The multi-frontal solver orders the degrees of freedom to minimize the amount of
calculations and memory space utilizing the sparsity of the matrix. The matrix is then
divided into a number of frontal matrices based on the ordering data, which are
subsequently decomposed. The algorithm of recursive bisection is used to implement
the ordering of the degrees of freedom. The forward substitution takes place in the
same order as the matrix decomposition while the backward substitution is calculated
in the reverse order.

An iterative solver uses a method, which reduces errors in approximate solutions


obtained through an iterative process leading to convergence. It is crucial to rapidly
reduce the convergence errors in a small number of iterations. Generally, the number
of iterative calculations depends on the preconditioning technique. midas NFX uses
the SA (smoothed aggregation) AMG (algebraic multi-grid) method, which is known as
a stable preconditioning technique, irrespective of element shapes.The AMG method
uses multi-grids so the number of iterations is not greatly influenced by the number
of degrees of freedom. It also exhibits stable convergence when using elements
consisted of displacement and rotational degrees of freedom at each node such as
shell elements. The iterative solver using the AMG method automatically composes
multi-grids, which are created by the sets of neighboring nodes and the degrees of
freedom representing each set of nodes.

As explained earlier, the performance of a direct solver or an iterative solver changes


with the scale of the problem to be analyzed for which midas NFX provides a function
making an automatic selection between the two. When the function of automatic
selection of an equation solver is opted, an appropriate solver is used on the basis of
the problem size. The direct solver using the dense matrix is selected for a small scale
problem. The multi-frontal solver is selected for a mid-scale problem. And the AMG
iterative solver is selected for a large scale problem. The criteria for automatic
selection are determined by considering the following aspects:

► If the empirical condition is known: determined on the basis of the nodes or the
number of elements specified by the user
► If the empirical condition is unknown: determined by the program based on the
number of degrees of freedom of the model and the system memory size

You might also like