9 #include "imstkLinearSolver.h" 10 #include "imstkMath.h" 13 #pragma warning( push ) 14 #pragma warning( disable : 4127 ) 16 #include <Eigen/Sparse> 17 #include <Eigen/SparseLU> 19 #pragma warning( pop ) 43 void solve(Vectord& x)
override;
48 void solve(
const Vectord& rhs, Vectord& x);
53 void setSystem(std::shared_ptr<LinearSystemType> newSystem)
override;
58 void setSystem(std::shared_ptr<Matrixd> matrix);
70 Eigen::LDLT<Matrixd> m_solver;
95 void setSystem(std::shared_ptr<LinearSystemType> newSystem)
override;
100 void solve(Vectord& x)
override;
105 void solve(
const Vectord& rhs, Vectord& x);
108 Eigen::SparseLU<SparseMatrixd, Eigen::COLAMDOrdering<MatrixType::StorageIndex>> m_solver;
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > Matrixd
A dynamic size matrix of doubles.
Dense direct solvers. Solves a dense system of equations using Cholesky decomposition.
Base class for linear solvers.
bool isIterative() const override
Returns true if the solver is iterative.