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

#include <EigenSolverFactory.h>

Inheritance diagram for sofa::component::linearsolver::direct::BaseMainEigenSolverFactory< Derived >:

Detailed Description

template<typename Derived>
class sofa::component::linearsolver::direct::BaseMainEigenSolverFactory< Derived >

Base class for specialized Eigen solver factories. It is a singleton with a single instance of EigenSolverFactory. It uses the CRTP to define a single instance of EigenSolverFactory for each derived type.

Static Protected Attributes

static std::mutex s_mutex {}
 

Static Public Member Functions

template<class Scalar >
static BaseEigenSolverProxygetSolver (const std::string &orderingMethodName)
 
template<class Scalar >
static bool hasSolver (const std::string &orderingMethodName)
 
static sofa::type::vector< EigenSolverFactory::OrderingMethodNameregisteredSolvers ()
 

Static Protected Member Functions

static EigenSolverFactorygetFactory ()
 

Attribute details

◆ s_mutex

template<typename Derived >
std::mutex sofa::component::linearsolver::direct::BaseMainEigenSolverFactory< Derived >::s_mutex {}
inlinestaticprotected

Function details

◆ getFactory()

template<typename Derived >
static EigenSolverFactory& sofa::component::linearsolver::direct::BaseMainEigenSolverFactory< Derived >::getFactory ( )
inlinestaticprotected

◆ getSolver()

template<typename Derived >
template<class Scalar >
static BaseEigenSolverProxy* sofa::component::linearsolver::direct::BaseMainEigenSolverFactory< Derived >::getSolver ( const std::string &  orderingMethodName)
inlinestatic

◆ hasSolver()

template<typename Derived >
template<class Scalar >
static bool sofa::component::linearsolver::direct::BaseMainEigenSolverFactory< Derived >::hasSolver ( const std::string &  orderingMethodName)
inlinestatic

◆ registeredSolvers()

template<typename Derived >
static sofa::type::vector<EigenSolverFactory::OrderingMethodName> sofa::component::linearsolver::direct::BaseMainEigenSolverFactory< Derived >::registeredSolvers ( )
inlinestatic