Parameters

The parameters system. More...

Collaboration diagram for Parameters:

Macros

#define EWOMS_REGISTER_PARAM(TypeTag, ParamType, ParamName, Description)
 Register a run-time parameter. More...
 
#define EWOMS_END_PARAM_REGISTRATION(TypeTag)   ::Ewoms::Parameters::endParamRegistration<TypeTag>()
 Indicate that all parameters are registered for a given type tag. More...
 
#define EWOMS_GET_PARAM(TypeTag, ParamType, ParamName)
 Retrieve a runtime parameter. More...
 

Functions

template<class TypeTag >
void printUsage (const std::string &progName, const std::string &errorMsg="", bool handleHelp=true, std::ostream &os=std::cerr)
 Print a usage message for all run-time parameters. More...
 
template<class TypeTag >
std::string parseCommandLineOptions (int argc, char **argv, bool handleHelp=true)
 Parse the parameters provided on the command line. More...
 
template<class TypeTag >
void printValues (std::ostream &os=std::cout)
 Print values of the run-time parameters. More...
 
template<class TypeTag >
bool printUnused (std::ostream &os=std::cout)
 Print the list of unused run-time parameters. More...
 

Detailed Description

The parameters system.

Parameters allow to specify values at runtime (either via command line arguments or by means of a .INI file) and thus cannot be used to specify types as properties can. Also all parameters fall back to the value of the property of the same as the parameter, so this property must exist and be defined.

Macro Definition Documentation

#define EWOMS_END_PARAM_REGISTRATION (   TypeTag)    ::Ewoms::Parameters::endParamRegistration<TypeTag>()

Indicate that all parameters are registered for a given type tag.

If EWOMS_REGISTER_PARAM is called after the invokation of END_PARAM_REGISTRATION, a std::logic_error exception will be thrown.

#define EWOMS_GET_PARAM (   TypeTag,
  ParamType,
  ParamName 
)
Value:
(::Ewoms::Parameters::get<TypeTag, ParamType, PTAG(ParamName)>(#ParamName, \
#ParamName))

Retrieve a runtime parameter.

The default value is specified via the property system.

Example:

1 // Retrieves scalar value UpwindWeight, default
2 // is taken from the property UpwindWeight
3 EWOMS_GET_PARAM(TypeTag, Scalar, UpwindWeight);

Referenced by Ewoms::NewtonMethod< TypeTag >::begin_(), Ewoms::BlackOilNewtonMethod< TypeTag >::BlackOilNewtonMethod(), Ewoms::DarcyExtensiveQuantities< TypeTag >::calculateBoundaryGradients_(), Ewoms::DarcyExtensiveQuantities< TypeTag >::calculateGradients_(), Ewoms::CubeGridManager< TypeTag >::CubeGridManager(), Ewoms::DgfGridManager< TypeTag >::DgfGridManager(), Ewoms::DiscreteFractureModel< TypeTag >::DiscreteFractureModel(), Ewoms::FvBaseDiscretization< TypeTag >::enableIntensiveQuantitiesCache_(), Ewoms::FvBaseDiscretization< TypeTag >::enableThermodynamicHints_(), Ewoms::NewtonMethod< TypeTag >::end_(), Ewoms::MultiPhaseBaseModel< TypeTag >::finishInit(), Ewoms::ThreadManager< TypeTag >::init(), Ewoms::NewtonMethod< TypeTag >::maxIterations_(), Ewoms::NcpNewtonMethod< TypeTag >::NcpNewtonMethod(), Ewoms::NewtonMethod< TypeTag >::NewtonMethod(), Ewoms::FvBaseProblem< TypeTag >::nextTimeStepSize(), Ewoms::FvBaseAdLocalLinearizer< TypeTag >::numericDifferenceMethod_(), Ewoms::FvBaseFdLocalLinearizer< TypeTag >::numericDifferenceMethod_(), Ewoms::PvsModel< TypeTag >::PvsModel(), Ewoms::Simulator< TypeTag >::run(), Ewoms::SimplexGridManager< TypeTag >::SimplexGridManager(), Ewoms::Simulator< TypeTag >::Simulator(), Ewoms::Linear::ParallelAmgBackend< TypeTag >::solve(), Ewoms::Linear::ParallelIterativeSolverBackend< TypeTag >::solve(), start(), Ewoms::StokesProblem< TypeTag >::StokesProblem(), Ewoms::NewtonMethod< TypeTag >::targetIterations_(), Ewoms::FvBaseProblem< TypeTag >::timeIntegration(), Ewoms::FlashIntensiveQuantities< TypeTag >::update(), Ewoms::NewtonMethod< TypeTag >::updateError_(), Ewoms::NewtonMethod< TypeTag >::verbose_(), and Ewoms::NewtonMethod< TypeTag >::writeConvergence_().

#define EWOMS_REGISTER_PARAM (   TypeTag,
  ParamType,
  ParamName,
  Description 
)
Value:
::Ewoms::Parameters::registerParam<TypeTag, ParamType, PTAG(ParamName)>( \
#ParamName, #ParamName, Description)

Register a run-time parameter.

In OPM, parameters can only be used after they have been registered.

Example:

1 // Registers a run-time parameter "UpwindWeight" which has type
2 // "Scalar" and the description "Relative weight of the upwind node."
3 EWOMS_REGISTER_PARAM(TypeTag, Scalar, UpwindWeight,
4  "Relative weight of the upwind node.");

Referenced by Ewoms::BlackOilNewtonMethod< TypeTag >::registerParameters(), Ewoms::ThreadManager< TypeTag >::registerParameters(), Ewoms::DgfGridManager< TypeTag >::registerParameters(), Ewoms::NcpNewtonMethod< TypeTag >::registerParameters(), Ewoms::StokesLocalResidual< TypeTag >::registerParameters(), Ewoms::SimplexGridManager< TypeTag >::registerParameters(), Ewoms::StokesProblem< TypeTag >::registerParameters(), Ewoms::VtkPhasePresenceModule< TypeTag >::registerParameters(), Ewoms::CubeGridManager< TypeTag >::registerParameters(), Ewoms::VtkPrimaryVarsModule< TypeTag >::registerParameters(), Ewoms::VtkTemperatureModule< TypeTag >::registerParameters(), Ewoms::MultiPhaseBaseProblem< TypeTag >::registerParameters(), Ewoms::VtkDiffusionModule< TypeTag >::registerParameters(), Ewoms::VtkEnergyModule< TypeTag >::registerParameters(), Ewoms::VtkBlackOilModule< TypeTag >::registerParameters(), Ewoms::VtkCompositionModule< TypeTag >::registerParameters(), Ewoms::VtkDiscreteFractureModule< TypeTag >::registerParameters(), Ewoms::FvBaseProblem< TypeTag >::registerParameters(), Ewoms::VtkMultiPhaseModule< TypeTag >::registerParameters(), Ewoms::Simulator< TypeTag >::registerParameters(), Ewoms::Linear::ParallelAmgBackend< TypeTag >::registerParameters(), Ewoms::FvBaseLinearizer< TypeTag >::registerParameters(), Ewoms::FvBaseFdLocalLinearizer< TypeTag >::registerParameters(), Ewoms::NewtonMethod< TypeTag >::registerParameters(), Ewoms::FlashModel< TypeTag >::registerParameters(), Ewoms::Linear::ParallelIterativeSolverBackend< TypeTag >::registerParameters(), Ewoms::PvsModel< TypeTag >::registerParameters(), and Ewoms::FvBaseDiscretization< TypeTag >::registerParameters().

Function Documentation

template<class TypeTag >
std::string parseCommandLineOptions ( int  argc,
char **  argv,
bool  handleHelp = true 
)

Parse the parameters provided on the command line.

This function does some basic syntax checks.

Parameters
argcThe number of parameters passed by the operating system to the main() function
argvThe array of strings passed by the operating system to the main() function
handleHelpSet to true if the function should deal with the -h and –help parameters
Returns
Empty string if everything worked out. Otherwise the thing that could not be read.

References GET_PROP.

template<class TypeTag >
bool printUnused ( std::ostream &  os = std::cout)

Print the list of unused run-time parameters.

Parameters
osThe std::ostream on which the message should be printed
Returns
true if something was printed

References GET_PROP.

template<class TypeTag >
void printUsage ( const std::string &  progName,
const std::string &  errorMsg = "",
bool  handleHelp = true,
std::ostream &  os = std::cerr 
)

Print a usage message for all run-time parameters.

Parameters
osThe std::ostream which should be used.
progNameThe name of the program

References GET_PROP, and GET_PROP_VALUE.

template<class TypeTag >
void printValues ( std::ostream &  os = std::cout)

Print values of the run-time parameters.

Parameters
osThe std::ostream on which the message should be printed

References GET_PROP.