Parameters.h¶
Note
The documentation on this page was automatically extracted from the DOLFIN C++ code and may need to be edited or expanded.
-
class
Parameters
¶ This class stores a set of parameters. Each parameter is identified by a unique string (the key) and a value of some given value type. Parameter sets can be nested at arbitrary depths.
A parameter may be either int, double, string or boolean valued.
Parameters may be added as follows:
- @code{.cpp}
- Parameters p(“my_parameters”); p.add(“relative_tolerance”, 1e-15); p.add(“absolute_tolerance”, 1e-15); p.add(“gmres_restart”, 30); p.add(“monitor_convergence”, false);
@endcode
Parameters may be changed as follows:
- @code{.cpp}
- p[“gmres_restart”] = 50;
@endcode
Parameter values may be retrieved as follows:
- @code{.cpp}
- int gmres_restart = p[“gmres_restart”];
@endcode
Parameter sets may be nested as follows:
- @code{.cpp}
- Parameters q(“nested_parameters”); p.add(q);
@endcode
Nested parameters may then be accessed by
- @code{.cpp}
- p(“nested_parameters”)[“…”]
@endcode
Parameters may be nested at arbitrary depths.
Parameters may be parsed from the command-line as follows:
- @code{.cpp}
- p.parse(argc, argv);
@endcode
Note: spaces in parameter keys are not allowed (to simplify usage from command-line).
-
explicit
Parameters
(std::string key = "parameters")¶ Create empty parameter set
-
Parameters
(const Parameters ¶meters)¶ Copy constructor
-
std::string
name
() const¶ Return name for parameter set
-
void
rename
(std::string key)¶ Rename parameter set
-
void
clear
()¶ Clear parameter set
-
void
add
(std::string key)¶ Add an unset parameter of type T. For example, to create a unset parameter of type bool, do parameters.add<bool>(“my_setting”)
-
void
add
(std::string key, T min, T max)¶ Add an unset parameter of type T with allows parameters. For example, to create a unset parameter of type bool, do parameters.add<bool>(“my_setting”)
-
void
add
(std::string key, std::set<std::string> valid_values)¶ Add an unset parameter of type T with allows parameters. For example, to create a unset parameter of type bool, do parameters.add<bool>(“my_setting”)
-
void
add
(std::string key, int value)¶ Add int-valued parameter
-
void
add
(std::string key, int value, int min_value, int max_value)¶ Add int-valued parameter with given range
-
void
add
(std::string key, double value)¶ Add double-valued parameter
-
void
add
(std::string key, double value, double min_value, double max_value)¶ Add double-valued parameter with given range
-
void
add
(std::string key, std::string value)¶ Add string-valued parameter
-
void
add
(std::string key, const char *value)¶ Add string-valued parameter
-
void
add
(std::string key, std::string value, std::set<std::string> range)¶ Add string-valued parameter with given range
-
void
add
(std::string key, const char *value, std::set<std::string> range)¶ Add string-valued parameter with given range
-
void
add
(std::string key, bool value)¶ Add bool-valued parameter
-
void
add
(const Parameters ¶meters)¶ Add nested parameter set
-
void
remove
(std::string key)¶ Remove parameter or parameter set with given key
-
void
parse
(int argc, char *argv[])¶ Parse parameters from command-line
-
void
update
(const Parameters ¶meters)¶ Update parameters with another set of parameters
-
Parameters &
operator()
(std::string key)¶ Return nested parameter set for given key
-
const Parameters &
operator()
(std::string key) const¶ Return nested parameter set for given key (const)
-
const Parameters &
operator=
(const Parameters ¶meters)¶ Assignment operator
-
bool
has_key
(std::string key) const¶ Check if parameter set has key (parameter or nested parameter set)
-
bool
has_parameter
(std::string key) const¶ Check if parameter set has given parameter
-
bool
has_parameter_set
(std::string key) const¶ Check if parameter set has given nested parameter set
-
void
get_parameter_keys
(std::vector<std::string> &keys) const¶ Return a vector of parameter keys
-
void
get_parameter_set_keys
(std::vector<std::string> &keys) const¶ Return a vector of parameter set keys
-
std::string
str
(bool verbose) const¶ Return informal string representation (pretty-print)
-
boost::optional<Parameters&>
find_parameter_set
(std::string key)¶ Return parameter set, if present
-
void
parse_common
(int argc, char *argv[])¶ Parse filtered options (everything except PETSc options)
-
void
parse_petsc
(int argc, char *argv[])¶ Parse filtered options (only PETSc options)
-
std::size_t
size
() const¶ Interface for pybind11 iterators
-
std::map<std::string, boost::variant<Parameter, Parameters>>::const_iterator
begin
() const¶ Interface for pybind11 iterators
-
std::map<std::string, boost::variant<Parameter, Parameters>>::const_iterator
end
() const¶ Interface for pybind11 iterators