Caribou
LDLTSolver.h
1 #pragma once
2 
3 #include <SofaCaribou/Solver/EigenSparseSolver.h>
4 #include <sofa/helper/OptionsGroup.h>
5 
6 namespace SofaCaribou::solver {
7 
8 template <class EigenSolver>
9 class LDLTSolver : public EigenSparseSolver<EigenSolver> {
10 public:
11  SOFA_CLASS(SOFA_TEMPLATE(LDLTSolver, EigenSolver), SOFA_TEMPLATE(EigenSparseSolver, EigenSolver));
12 
13  template <typename T>
14  using Data = sofa::Data<T>;
15 
16  LDLTSolver();
17 
18  // Get the backend name of the class derived from the EigenSolver template parameter
19  static std::string BackendName();
20 private:
22  Data<sofa::helper::OptionsGroup> d_backend;
23 };
24 
25 } // namespace SofaCaribou::solver
SofaCaribou::solver::LDLTSolver
Definition: LDLTSolver.h:9
SofaCaribou::solver::EigenSparseSolver
Base class for sparse direct solvers using Eigen as a backend solver.
Definition: EigenSparseSolver.h:29