LAMA
|
registry for Solver provides interface for getting a new CG solver More...
#include <SolverFactory.hpp>
Public Types | |
typedef qi::symbols< char, SolverCreator::RuleType > | TypeToCreatorMap |
typedef qi::symbols< char, SolverPtr > | SolverInstanceMap |
Public Member Functions | |
virtual | ~SolverFactory () |
void | addSolverCreator (const std::string &type, SolverCreator::RuleType &SolverCreator) |
Add/register a SolverCreator to the Factory. | |
const TypeToCreatorMap & | getCreatorRuleSymbols () |
bool | hasSolver (const std::string &solverName) const |
Checks if a solver instance is registered. | |
SolverPtr | getSolver (const std::string &solverName) |
Returns a registered solver instance. | |
const SolverInstanceMap & | getSolverInstanceMap () |
Returns the solver instance map. | |
void | addSolver (Solver *solver) |
Add/register a solver instance with a given name/id to the Factory. | |
Static Public Member Functions | |
static SolverFactory & | getFactory () |
Returns the static factory object to access the factory. | |
static void | release () |
Releases all registered solvers and solver creators. | |
Private Member Functions | |
SolverFactory () | |
Default constructor of Solver Factory Create and manage a collection of solvers. | |
LAMA_LOG_DECL_STATIC_LOGGER (logger) | |
Private Attributes | |
TypeToCreatorMap | mCreatorRuleMap |
SolverInstanceMap | mSolverInstanceMap |
typedef qi::symbols<char, SolverPtr> lama::SolverFactory::SolverInstanceMap |
typedef qi::symbols<char, SolverCreator::RuleType > lama::SolverFactory::TypeToCreatorMap |
lama::SolverFactory::~SolverFactory | ( | ) | [virtual] |
lama::SolverFactory::SolverFactory | ( | ) | [private] |
Default constructor of Solver Factory Create and manage a collection of solvers.
Referenced by getFactory().
void lama::SolverFactory::addSolver | ( | Solver * | solver | ) |
Add/register a solver instance with a given name/id to the Factory.
[in] | solver | The solver instance which will be added to the registry/map |
References hasSolver(), LAMA_ASSERT, and mSolverInstanceMap.
Referenced by lama::SolverConfigGrammar::SolverConfigGrammar().
void lama::SolverFactory::addSolverCreator | ( | const std::string & | type, |
SolverCreator::RuleType & | SolverCreator | ||
) |
Add/register a SolverCreator to the Factory.
[in] | type | The SolverType which is used to create a solver instance |
[in] | SolverCreator | The creator to create solver instances |
References mCreatorRuleMap.
Referenced by lama::CGCreator::CGCreator(), lama::DefaultJacobiCreator::DefaultJacobiCreator(), lama::GMRESCreator::GMRESCreator(), lama::InverseSolverCreator::InverseSolverCreator(), lama::LUSolverCreator::LUSolverCreator(), lama::SimpleAMGCreator::SimpleAMGCreator(), lama::SORCreator::SORCreator(), lama::SpecializedJacobiCreator::SpecializedJacobiCreator(), and lama::SpecialLUSolverCreator::SpecialLUSolverCreator().
References mCreatorRuleMap.
Referenced by lama::SolverConfigGrammar::SolverConfigGrammar().
SolverFactory & lama::SolverFactory::getFactory | ( | ) | [static] |
Returns the static factory object to access the factory.
References SolverFactory().
Referenced by lama::CGCreator::CGCreator(), lama::DefaultJacobiCreator::DefaultJacobiCreator(), lama::GMRESCreator::GMRESCreator(), lama::InverseSolverCreator::InverseSolverCreator(), lama::LUSolverCreator::LUSolverCreator(), release(), lama::SimpleAMGCreator::SimpleAMGCreator(), lama::SolverConfigGrammar::SolverConfigGrammar(), lama::SolverCreator::SolverCreator(), lama::SORCreator::SORCreator(), lama::SpecializedJacobiCreator::SpecializedJacobiCreator(), and lama::SpecialLUSolverCreator::SpecialLUSolverCreator().
SolverPtr lama::SolverFactory::getSolver | ( | const std::string & | solverName | ) |
Returns a registered solver instance.
[in] | solverName | The name/id of the registered solver |
References hasSolver(), LAMA_THROWEXCEPTION, and mSolverInstanceMap.
Referenced by lama::SolverCreator::SolverCreator().
Returns the solver instance map.
References mSolverInstanceMap.
bool lama::SolverFactory::hasSolver | ( | const std::string & | solverName | ) | const |
Checks if a solver instance is registered.
[in] | solverName | The name/id of the registered solver |
References mSolverInstanceMap.
Referenced by addSolver(), and getSolver().
lama::SolverFactory::LAMA_LOG_DECL_STATIC_LOGGER | ( | logger | ) | [private] |
void lama::SolverFactory::release | ( | ) | [static] |
Releases all registered solvers and solver creators.
References getFactory(), mCreatorRuleMap, and mSolverInstanceMap.
Referenced by addSolverCreator(), getCreatorRuleSymbols(), and release().
Referenced by addSolver(), getSolver(), getSolverInstanceMap(), hasSolver(), and release().