The EigenSolver keyword creates a solver that uses the Cholesky-decomposition on the matrix \(\textbf{K}_{\textrm{eff}}\), and then solves the upper triangular system. This function is meant to be employed to symmetric and positive-definite structure of \(\textbf{K}_{\textrm{eff}}\).
REFERENCE:
The python Pre-Analysis in the 01-Pre_Process/Method/Attach.py file provides with an interface to create a Linear. We use the addSolver() as follows:
addSolver(tag, attributes):
Example
A EIGEN solver can be defined using the python interface as follows:
SVL.addSolver(tag=1, attributes={'name': 'Eigen', 'update': 'OFF'})
Application Please refer to any python file located at 03-Validations/01-Debugging/ to see an example on how to define a EIGEN solver using the addSolver function.
On the contrary, the 01-Pre_Process/Method/Remove.py file provides with an interface to depopulate the Entities dictionary. For example, to remove an already define Solver, use:
The C++ Run-Analysis in the 02-Run_Process/11-Solvers/01-Direct/EigenSolver.cpp file provides the class implementation. A EigenSolver is created using the built-in json parse-structure provided in the Driver.hpp and is defined inside the "Simulations" json field indicating its "Tag" as follows,
{
"Simulations": {
"Tag": {
"attributes": {
"algorithm": {
"name": "EIGEN",
"update": int
}
}
}
}
}
| Variable | Description |
|---|---|
update | Specifies if the analysis is linear update=1 or nonlinear update=0. In the linear case, the Cholesky decomposition will be stored and computed just once, for the nonlinear case will be computed at each iteration. |