SparseLDLSolver
This component belongs to the category of LinearSolver. The role of the SparseLDLSolver is to solve the linear system without any a priori on this system.
To do so, the SparseLDLSolver relies on the method of LDL decomposition. The system matrix will be decomposed , where
is the lower part of the matrix
and
is its diagonal.
As a direct solver, the SparseLDLSolver computes at each simulation time step an exact solution as follows:
Using a block forward substitution, we can first find the solution of:
Next, a second solution can be computed:
Finally, from the relationship where
is easy to compute, we can find the exact solution
via backward substitution:
It is important to note that this decomposition considers that the system matrix is symmetric.
Sequence diagram
Data
No important data is available for the LDL since it simply computes the direct solution.
However, an option for saving the matrix is given using the data savingMatrixToFile. You can thus choose the savingFilename and the precision of the digits saved in this file using savingPrecision.
Usage
The SparseLDLSolver requires the use (above in the scene graph) of an integration scheme, and (below in the scene graph) of a MechanicalObject storing the state information that the SparseLDLSolver will access.
As a direct solver, the SparseLDLSolver might be extremely time consuming for large system. However, it will always give you an exact solution, making the assumption that the system matrix is symmetric.
Example
This component is used as follows in XML format:
or using Python3:
With a description of each data
An example scene involving a SparseLDLSolver is available in examples/Components/linearsolver/FEMBAR-SparseLDLSolver.scn
Last modified: 12 February 2021