10 #if !defined(KRATOS_EIGEN_PARDISO_LDLT_SOLVER_H_INCLUDED)
11 #define KRATOS_EIGEN_PARDISO_LDLT_SOLVER_H_INCLUDED
14 #include <Eigen/Sparse>
15 #include <Eigen/PardisoSupport>
27 template <
typename TScalar =
double>
36 Eigen::PardisoLDLT<SparseMatrix> m_solver;
41 return "eigen_pardiso_ldlt";
52 const bool success = m_solver.info() == Eigen::Success;
57 bool Solve(Eigen::Ref<const Vector>
b, Eigen::Ref<Vector>
x)
const
59 x = m_solver.solve(
b);
61 const bool success = m_solver.info() == Eigen::Success;
68 rOStream <<
"EigenDirectSolver <" <<
Name() <<
"> finished.";
73 return "No additional information";
Definition: eigen_pardiso_ldlt_solver.h:29
static std::string Name()
Definition: eigen_pardiso_ldlt_solver.h:39
TScalar Scalar
Definition: eigen_pardiso_ldlt_solver.h:31
void PrintInfo(std::ostream &rOStream) const
Definition: eigen_pardiso_ldlt_solver.h:66
std::string GetSolverErrorMessages() const
Definition: eigen_pardiso_ldlt_solver.h:71
bool Compute(Eigen::Map< const SparseMatrix > a)
Definition: eigen_pardiso_ldlt_solver.h:48
Kratos::EigenDynamicVector< Scalar > Vector
Definition: eigen_pardiso_ldlt_solver.h:33
Kratos::EigenSparseMatrix< Scalar > SparseMatrix
Definition: eigen_pardiso_ldlt_solver.h:32
bool Solve(Eigen::Ref< const Vector > b, Eigen::Ref< Vector > x) const
Definition: eigen_pardiso_ldlt_solver.h:57
void Initialize(Parameters settings)
Definition: eigen_pardiso_ldlt_solver.h:44
This class provides to Kratos a data structure for I/O based on the standard of JSON.
Definition: kratos_parameters.h:59
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
Eigen::SparseMatrix< _Scalar, Eigen::RowMajor, int > EigenSparseMatrix
Definition: linear_solvers_define.h:35
Eigen::Matrix< _Scalar, Eigen::Dynamic, 1 > EigenDynamicVector
Definition: linear_solvers_define.h:33
a
Definition: generate_stokes_twofluid_element.py:77
b
Definition: generate_total_lagrangian_mixed_volumetric_strain_element.py:31
x
Definition: sensitivityMatrix.py:49