SOFA API  1a4bb3e7
Open source framework for multi-physics simuation
sofa::component::linearsolver::direct::EigenSolverWrapper< RealObject > Class Template Reference

#include <EigenSolverFactory.h>

Inheritance diagram for sofa::component::linearsolver::direct::EigenSolverWrapper< RealObject >:

Detailed Description

template<typename RealObject>
class sofa::component::linearsolver::direct::EigenSolverWrapper< RealObject >

This class is the bridge between an Eigen solver class and the abstact class BaseEigenSolverProxy.

Using this class, all Eigen solvers can inherit from the same base class, hence runtime polymorphism is possible. Only a subset of the Eigen solver methods are available.

Public Member Functions

 EigenSolverWrapper ()
 
Eigen::ComputationInfo info () const override
 
void solve (const EigenVectorXdMap< float > &b, EigenVectorXdMap< float > &x) const override
 
void solve (const EigenVectorXdMap< double > &b, EigenVectorXdMap< double > &x) const override
 
void analyzePattern (const EigenSparseMatrixMap< float > &a) override
 
void analyzePattern (const EigenSparseMatrixMap< double > &a) override
 
void factorize (const EigenSparseMatrixMap< float > &a) override
 
void factorize (const EigenSparseMatrixMap< double > &a) override
 
- Public Member Functions inherited from sofa::component::linearsolver::direct::BaseEigenSolverProxy
virtual ~BaseEigenSolverProxy ()
 

Constructor details

◆ EigenSolverWrapper()

template<typename RealObject >
sofa::component::linearsolver::direct::EigenSolverWrapper< RealObject >::EigenSolverWrapper ( )
inline

Function details

◆ analyzePattern() [1/2]

template<typename RealObject >
void sofa::component::linearsolver::direct::EigenSolverWrapper< RealObject >::analyzePattern ( const EigenSparseMatrixMap< double > &  a)
inlineoverridevirtual

◆ analyzePattern() [2/2]

template<typename RealObject >
void sofa::component::linearsolver::direct::EigenSolverWrapper< RealObject >::analyzePattern ( const EigenSparseMatrixMap< float > &  a)
inlineoverridevirtual

◆ factorize() [1/2]

template<typename RealObject >
void sofa::component::linearsolver::direct::EigenSolverWrapper< RealObject >::factorize ( const EigenSparseMatrixMap< double > &  a)
inlineoverridevirtual

◆ factorize() [2/2]

template<typename RealObject >
void sofa::component::linearsolver::direct::EigenSolverWrapper< RealObject >::factorize ( const EigenSparseMatrixMap< float > &  a)
inlineoverridevirtual

◆ info()

template<typename RealObject >
Eigen::ComputationInfo sofa::component::linearsolver::direct::EigenSolverWrapper< RealObject >::info ( ) const
inlineoverridevirtual

◆ solve() [1/2]

template<typename RealObject >
void sofa::component::linearsolver::direct::EigenSolverWrapper< RealObject >::solve ( const EigenVectorXdMap< double > &  b,
EigenVectorXdMap< double > &  x 
) const
inlineoverridevirtual

◆ solve() [2/2]

template<typename RealObject >
void sofa::component::linearsolver::direct::EigenSolverWrapper< RealObject >::solve ( const EigenVectorXdMap< float > &  b,
EigenVectorXdMap< float > &  x 
) const
inlineoverridevirtual