My Project
|
This file provides the infrastructure to retrieve run-time parameters. More...
#include <dune/common/classname.hh>
#include <cstring>
#include <functional>
#include <set>
#include <sstream>
#include <string>
#include <type_traits>
#include <vector>
Go to the source code of this file.
Classes | |
struct | Opm::Parameters::detail::has_name< typename, class > |
struct | Opm::Parameters::detail::has_name< T, std::void_t< decltype(std::declval< T >().name)> > |
struct | Opm::Parameters::Parameter |
A struct holding the key-value pair for a parameter. More... | |
Namespaces | |
namespace | Opm |
This file contains a set of helper functions used by VFPProd / VFPInj. | |
Typedefs | |
using | Opm::Parameters::PositionalArgumentCallback = std::function< int(std::function< void(const std::string &, const std::string &)>, std::set< std::string > &, std::string &, int, const char **, int, int)> |
Callback function for command line parsing. | |
Functions | |
template<class Parameter > | |
auto | Opm::Parameters::detail::getParamName () |
get the name data member of a parameter | |
template<class ParamType > | |
ParamType | Opm::Parameters::detail::Get_ (const std::string ¶mName, ParamType defaultValue, bool errorIfNotRegistered) |
Private implementation. | |
void | Opm::Parameters::detail::Hide_ (const std::string ¶mName) |
Private implementation. | |
bool | Opm::Parameters::detail::IsSet_ (const std::string ¶mName, bool errorIfNotRegistered) |
Private implementation. | |
void | Opm::Parameters::detail::Register_ (const std::string ¶mName, const std::string ¶mTypeName, const std::string &defaultValue, const char *usageString) |
Private implementation. | |
void | Opm::Parameters::detail::SetDefault_ (const std::string ¶mName, const std::string ¶mValue) |
Private implementation. | |
void | Opm::Parameters::printUsage (const std::string &helpPreamble, std::ostream &os, const std::string &errorMsg="", const bool showAll=false) |
Print a usage message for all run-time parameters. | |
std::string | Opm::Parameters::parseCommandLineOptions (int argc, const char **argv, const PositionalArgumentCallback &posArgCallback, const std::string &helpPreamble="") |
Parse the parameters provided on the command line. | |
bool | Opm::Parameters::parseParameterFile (const std::string &fileName, bool overwrite=true) |
Read the parameters from an INI-style file. | |
void | Opm::Parameters::printValues (std::ostream &os) |
Print values of the run-time parameters. | |
bool | Opm::Parameters::printUnused (std::ostream &os) |
Print the list of unused run-time parameters. | |
template<class Param > | |
auto | Opm::Parameters::Get (bool errorIfNotRegistered=true) |
Retrieve a runtime parameter. | |
template<class Param > | |
void | Opm::Parameters::SetDefault (decltype(Param::value) new_value) |
Set a runtime parameter. | |
void | Opm::Parameters::getLists (std::vector< Parameter > &usedParams, std::vector< Parameter > &unusedParams) |
Retrieves the lists of parameters specified at runtime and their values. | |
void | Opm::Parameters::reset () |
Reset parameter system. | |
template<class Param > | |
bool | Opm::Parameters::IsSet (bool errorIfNotRegistered=true) |
Returns true if a parameter has been specified at runtime, false otherwise. | |
template<class Param > | |
void | Opm::Parameters::Register (const char *usageString) |
Register a run-time parameter. | |
template<class Param > | |
void | Opm::Parameters::Hide () |
Indicate that a given parameter should not be mentioned in the help message. | |
bool | Opm::Parameters::IsRegistrationOpen () |
Query whether parameter registration is open or not. | |
void | Opm::Parameters::endRegistration () |
Indicate that all parameters are registered for a given type tag. | |
This file provides the infrastructure to retrieve run-time parameters.
Internally, runtime parameters are implemented using Dune::ParameterTree with the default value taken from the parameter definition.
void Opm::Parameters::endRegistration | ( | ) |
Indicate that all parameters are registered for a given type tag.
If registerParam is called after the invocation of endParamRegistration
, a std::logic_error
exception will be thrown.
Retrieve a runtime parameter.
The default value is specified in the parameter struct.
Example:
void Opm::Parameters::getLists | ( | std::vector< Parameter > & | usedParams, |
std::vector< Parameter > & | unusedParams | ||
) |
Retrieves the lists of parameters specified at runtime and their values.
The two arguments besides the TypeTag are assumed to be STL containers which store std::pair<std::string, std::string>.
void Opm::Parameters::Hide | ( | ) |
Indicate that a given parameter should not be mentioned in the help message.
This allows to deal with unused parameters
bool Opm::Parameters::IsRegistrationOpen | ( | ) |
Query whether parameter registration is open or not.
Returns true if a parameter has been specified at runtime, false otherwise.
If the parameter in question has not been registered, this throws an exception.
std::string Opm::Parameters::parseCommandLineOptions | ( | int | argc, |
const char ** | argv, | ||
const PositionalArgumentCallback & | posArgCallback, | ||
const std::string & | helpPreamble = "" |
||
) |
Parse the parameters provided on the command line.
This function does some basic syntax checks.
argc | The number of parameters passed by the operating system to the main() function |
argv | The array of strings passed by the operating system to the main() function |
helpPreamble | If non-empty, the –help and -h parameters will be recognized and the content of the string will be printed before the list of command line parameters |
Read the parameters from an INI-style file.
This function does some basic syntax checks.
bool Opm::Parameters::printUnused | ( | std::ostream & | os | ) |
Print the list of unused run-time parameters.
os | The std::ostream on which the message should be printed |
void Opm::Parameters::printUsage | ( | const std::string & | helpPreamble, |
std::ostream & | os, | ||
const std::string & | errorMsg = "" , |
||
const bool | showAll = false |
||
) |
Print a usage message for all run-time parameters.
helpPreamble | The string that is printed after the error message and before the list of parameters. |
errorMsg | The error message to be printed, if any |
os | The std::ostream which should be used. |
void Opm::Parameters::printValues | ( | std::ostream & | os | ) |
Print values of the run-time parameters.
os | The std::ostream on which the message should be printed |
Register a run-time parameter.
In OPM, parameters can only be used after they have been registered.
Example:
void Opm::Parameters::SetDefault | ( | decltype(Param::value) | new_value | ) |
Set a runtime parameter.
Override the default value specified.
Example: