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. |