20const std::string GmmxxEquationSolverSettings::techniqueOptionName =
"method";
21const std::string GmmxxEquationSolverSettings::preconditionOptionName =
"precond";
22const std::string GmmxxEquationSolverSettings::restartOptionName =
"restart";
23const std::string GmmxxEquationSolverSettings::maximalIterationsOptionName =
"maxiter";
24const std::string GmmxxEquationSolverSettings::maximalIterationsOptionShortName =
"i";
25const std::string GmmxxEquationSolverSettings::precisionOptionName =
"precision";
28 std::vector<std::string>
methods = {
"bicgstab",
"qmr",
"gmres"};
30 "The method to be used for solving linear equation systems with the gmm++ engine.")
39 std::vector<std::string> preconditioner = {
"ilu",
"diagonal",
"none"};
58 "The maximal number of iterations to perform before iterative solving is aborted.")
59 .setShortName(maximalIterationsOptionShortName)
80 return storm::solver::GmmxxLinearEquationSolverMethod::Bicgstab;
82 return storm::solver::GmmxxLinearEquationSolverMethod::Qmr;
84 return storm::solver::GmmxxLinearEquationSolverMethod::Gmres;
86 STORM_LOG_THROW(
false, storm::exceptions::IllegalArgumentValueException,
97 return storm::solver::GmmxxLinearEquationSolverPreconditioner::Ilu;
99 return storm::solver::GmmxxLinearEquationSolverPreconditioner::Diagonal;
101 return storm::solver::GmmxxLinearEquationSolverPreconditioner::None;
103 STORM_LOG_THROW(
false, storm::exceptions::IllegalArgumentValueException,
137 "gmm++ is not selected as the preferred equation solver, so setting options for gmm++ might have no effect.");
virtual std::string getValueAsString() const =0
Retrieves the value of this argument as a string.
virtual uint_fast64_t getValueAsUnsignedInteger() const =0
Retrieves the value of this argument as an unsigned integer.
virtual double getValueAsDouble() const =0
Retrieves the value of this argument as a double.
static ArgumentBuilder createUnsignedIntegerArgument(std::string const &name, std::string const &description)
Creates an unsigned integer argument with the given parameters.
static ArgumentBuilder createDoubleArgument(std::string const &name, std::string const &description)
Creates a double argument with the given parameters.
static ArgumentBuilder createStringArgument(std::string const &name, std::string const &description)
Creates a string argument with the given parameters.
static std::shared_ptr< ArgumentValidator< double > > createDoubleRangeValidatorExcluding(double lowerBound, double upperBound)
static std::shared_ptr< ArgumentValidator< std::string > > createMultipleChoiceValidator(std::vector< std::string > const &choices)
This class provides the interface to create an option...
ArgumentBase const & getArgumentByName(std::string const &argumentName) const
Returns a reference to the argument with the specified long name.
bool getHasOptionBeenSet() const
Retrieves whether the option has been set.
bool isMaximalIterationCountSet() const
Retrieves whether the maximal iteration count has been set.
bool isPreconditioningMethodSet() const
Retrieves whether the preconditioning method has been set.
GmmxxEquationSolverSettings()
Creates a new set of gmm++ settings.
uint_fast64_t getMaximalIterationCount() const
Retrieves the maximal number of iterations to perform until giving up on converging.
static const std::string moduleName
bool isLinearEquationSystemMethodSet() const
Retrieves whether the linear equation system method has been set.
double getPrecision() const
Retrieves the precision that is used for detecting convergence.
storm::solver::GmmxxLinearEquationSolverMethod getLinearEquationSystemMethod() const
Retrieves the method that is to be used for solving systems of linear equations.
bool isRestartIterationCountSet() const
Retrieves whether the restart iteration count has been set.
bool check() const override
Checks whether the settings are consistent.
bool isPrecisionSet() const
Retrieves whether the precision has been set.
uint_fast64_t getRestartIterationCount() const
Retrieves the number of iterations after which restarted methods are to be restarted.
storm::solver::GmmxxLinearEquationSolverPreconditioner getPreconditioningMethod() const
Retrieves the method that is to be used for preconditioning solving systems of linear equations.
This is the base class of the settings for a particular module.
void addOption(std::shared_ptr< Option > const &option)
Adds and registers the given option.
Option & getOption(std::string const &longName)
Retrieves the option with the given long name.
#define STORM_LOG_WARN_COND(cond, message)
#define STORM_LOG_THROW(cond, exception, message)
SettingsType const & getModule()
Get module.