| Caribou
    | 
Implementation of a direct LLT sparse linear solver.
This class provides a LL^T Cholesky factorizations of sparse matrices that are selfadjoint and positive definite. In order to reduce the fill-in, a symmetric permutation P is applied prior to the factorization such that the factorized matrix is P A P^-1.
The component uses the Eigen SimplicialLLT class as the solver backend.
| EigenSolver | Eigen direct solver type | 
#include <LLTSolver.h>
 
  
| Public Types | |
| template<typename T > | |
| using | Data = sofa::Data< T > | 
|  Public Types inherited from SofaCaribou::solver::EigenSparseSolver< EigenSolver > | |
| using | EigenSolver = EigenSolver | 
| using | SparseMatrix = std::remove_cv_t< typename EigenSolver::MatrixType > | 
| using | Vector = Eigen::Matrix< FLOATING_POINT_TYPE, Eigen::Dynamic, 1 > | 
| Public Member Functions | |
| SOFA_CLASS (SOFA_TEMPLATE(LLTSolver, EigenSolver), SOFA_TEMPLATE(EigenSparseSolver, EigenSolver)) | |
|  Public Member Functions inherited from SofaCaribou::solver::EigenSparseSolver< EigenSolver > | |
| SOFA_CLASS (SOFA_TEMPLATE(EigenSparseSolver, EigenSolver), sofa::core::behavior::LinearSolver) | |
| virtual void | assemble (const sofa::core::MechanicalParams *mparams) | 
| Assemble the system matrix A = (mM + bB + kK) inside the SparseMatrix p_A.  More... | |
| void | resetSystem () final | 
| Reset the complete system (A, x and b are cleared).  More... | |
| void | setSystemMBKMatrix (const sofa::core::MechanicalParams *mparams) final | 
| Set the linear system matrix A = (mM + bB + kK), storing the coefficients m, b and k of the mechanical M,B,K matrices.  More... | |
| void | setSystemRHVector (sofa::core::MultiVecDerivId b_id) final | 
| Gives the identifier of the right-hand side vector b.  More... | |
| void | setSystemLHVector (sofa::core::MultiVecDerivId x_id) final | 
| Gives the identifier of the left-hand side vector x.  More... | |
| void | solveSystem () override | 
| Solves the system using the Eigen solver. | |
| virtual auto | symmetric () const -> bool | 
| States if the system matrix is symmetric.  More... | |
| virtual void | set_symmetric (bool is_symmetric) | 
| Explicitly states if this matrix is symmetric. | |
| auto | solver () const -> const EigenSolver & | 
| Get a readonly reference to the backend solver. | |
| auto | solver () -> EigenSolver & | 
| Get a reference to the backend solver. | |
| auto | mechanical_params () const -> const sofa::core::MechanicalParams & | 
| Get a readonly reference to the mechanical parameters. | |
| auto | matrix_accessor () const -> const sofa::component::linearsolver::DefaultMultiMatrixAccessor & | 
| Get a readonly reference to the multi-matrix accessor.  More... | |
| auto | A () const -> const SparseMatrix & | 
| Get a readonly reference to the global assembled system matrix. | |
| auto | b_id () const -> const sofa::core::MultiVecDerivId & | 
| Get a readonly reference to the right-hand side vector identifier. | |
| auto | x_id () const -> const sofa::core::MultiVecDerivId & | 
| Get a readonly reference to the left-hand side unknown vector identifier. | |
| auto | A_is_factorized () const -> bool | 
| True if the solver has successfully factorize the system matrix. | |
|  Public Member Functions inherited from SofaCaribou::solver::LinearSolver | |
| virtual sofa::defaulttype::BaseMatrix * | create_new_matrix (unsigned int rows, unsigned int cols) const =0 | 
| Creates a new BaseMatrix of size rows x cols.  More... | |
| virtual sofa::defaulttype::BaseVector * | create_new_vector (unsigned int n) const =0 | 
| Creates a new BaseVector of size n.  More... | |
| Static Public Member Functions | |
| static std::string | BackendName () | 
|  Static Public Member Functions inherited from SofaCaribou::solver::EigenSparseSolver< EigenSolver > | |
| static auto | GetCustomTemplateName () -> std::string | 
| static auto | canCreate (Derived *o, sofa::core::objectmodel::BaseContext *context, sofa::core::objectmodel::BaseObjectDescription *arg) -> bool |