Professional Documents
Culture Documents
Theory of Fem (Analysis Setting)
Theory of Fem (Analysis Setting)
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.
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.
► 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