Reference documentation for deal.II version 9.4.1
|
#include <deal.II/base/parameter_handler.h>
Classes | |
class | Entry |
class | UserClass |
Public Types | |
enum | OutputStyle { DefaultStyle = 0x0000 , Short = 0x0001 , KeepDeclarationOrder = 0x0002 , PRM = 0x0010 , Text = PRM , LaTeX = 0x0020 , Description = 0x0040 , XML = 0x0080 , JSON = 0x0100 , ShortPRM = PRM | Short , ShortText = ShortPRM , ShortXML = XML | Short , ShortJSON = JSON | Short , ShortLaTeX = LaTeX | Short } |
Public Member Functions | |
MultipleParameterLoop () | |
virtual | ~MultipleParameterLoop () override=default |
virtual void | parse_input (std::istream &input, const std::string &filename="input file", const std::string &last_line="", const bool skip_undefined=false) override |
void | loop (UserClass &uc) |
std::size_t | memory_consumption () const |
virtual void | parse_input (std::istream &input, const std::string &filename="input file", const std::string &last_line="", const bool skip_undefined=false) |
virtual void | parse_input (const std::string &filename, const std::string &last_line="", const bool skip_undefined=false, const bool assert_mandatory_entries_are_found=false) |
virtual void | parse_input_from_string (const std::string &s, const std::string &last_line="", const bool skip_undefined=false) |
virtual void | parse_input_from_xml (std::istream &input, const bool skip_undefined=false) |
virtual void | parse_input_from_json (std::istream &input, const bool skip_undefined=false) |
void | clear () |
void | declare_entry (const std::string &entry, const std::string &default_value, const Patterns::PatternBase &pattern=Patterns::Anything(), const std::string &documentation="", const bool has_to_be_set=false) |
void | add_action (const std::string &entry, const std::function< void(const std::string &value)> &action) |
template<class ParameterType > | |
void | add_parameter (const std::string &entry, ParameterType ¶meter, const std::string &documentation="", const Patterns::PatternBase &pattern= *Patterns::Tools::Convert< ParameterType >::to_pattern(), const bool has_to_be_set=false) |
void | declare_alias (const std::string &existing_entry_name, const std::string &alias_name, const bool alias_is_deprecated=false) |
void | enter_subsection (const std::string &subsection) |
void | leave_subsection () |
bool | subsection_path_exists (const std::vector< std::string > &sub_path) const |
std::string | get (const std::string &entry_string) const |
std::string | get (const std::vector< std::string > &entry_subsection_path, const std::string &entry_string) const |
long int | get_integer (const std::string &entry_string) const |
long int | get_integer (const std::vector< std::string > &entry_subsection_path, const std::string &entry_string) const |
double | get_double (const std::string &entry_name) const |
double | get_double (const std::vector< std::string > &entry_subsection_path, const std::string &entry_string) const |
bool | get_bool (const std::string &entry_name) const |
bool | get_bool (const std::vector< std::string > &entry_subsection_path, const std::string &entry_string) const |
void | set (const std::string &entry_name, const std::string &new_value) |
void | set (const std::string &entry_name, const char *new_value) |
void | set (const std::string &entry_name, const long int new_value) |
void | set (const std::string &entry_name, const double new_value) |
void | set (const std::string &entry_name, const bool new_value) |
std::ostream & | print_parameters (std::ostream &out, const OutputStyle style) const |
void | print_parameters (const std::string &filename, const OutputStyle style=DefaultStyle) const |
void | log_parameters (LogStream &out, const OutputStyle style=DefaultStyle) |
void | log_parameters_section (LogStream &out, const OutputStyle style=DefaultStyle) |
template<class Archive > | |
void | save (Archive &ar, const unsigned int version) const |
template<class Archive > | |
void | load (Archive &ar, const unsigned int version) |
template<class Archive > | |
void | serialize (Archive &archive, const unsigned int version) |
bool | operator== (const ParameterHandler &prm2) const |
std::set< std::string > | get_entries_wrongly_not_set () const |
void | assert_that_entries_have_been_set () const |
Static Public Member Functions | |
static ::ExceptionBase & | ExcEntryAlreadyExists (std::string arg1) |
static ::ExceptionBase & | ExcValueDoesNotMatchPattern (std::string arg1, std::string arg2) |
static ::ExceptionBase & | ExcAlreadyAtTopLevel () |
static ::ExceptionBase & | ExcEntryUndeclared (std::string arg1) |
static ::ExceptionBase & | ExcUnbalancedSubsections (std::string arg1, std::string arg2) |
static ::ExceptionBase & | ExcNoSubsection (int arg1, std::string arg2, std::string arg3) |
static ::ExceptionBase & | ExcCannotParseLine (int arg1, std::string arg2, std::string arg3) |
static ::ExceptionBase & | ExcInvalidEntryForPattern (int arg1, std::string arg2, std::string arg3, std::string arg4, std::string arg5) |
static ::ExceptionBase & | ExcInvalidXMLParameterFile () |
static ::ExceptionBase & | ExcCannotOpenIncludeStatementFile (int arg1, std::string arg2, std::string arg3) |
Private Member Functions | |
void | init_branches () |
void | init_branches_current_section () |
void | fill_entry_values (const unsigned int run_no) |
std::string | get_current_path () const |
std::string | get_current_full_path (const std::string &name) const |
std::string | get_current_full_path (const std::vector< std::string > &sub_path, const std::string &name) const |
void | scan_line (std::string line, const std::string &input_filename, const unsigned int current_line_n, const bool skip_undefined) |
void | recursively_print_parameters (const boost::property_tree::ptree &tree, const std::vector< std::string > &target_subsection_path, const ParameterHandler::OutputStyle style, const unsigned int indent_level, std::ostream &out) const |
Private Attributes | |
std::vector< Entry > | multiple_choices |
unsigned int | n_branches |
std::vector< std::string > | subsection_path |
std::unique_ptr< boost::property_tree::ptree > | entries |
std::map< std::string, std::pair< bool, bool > > | entries_set_status |
std::vector< std::unique_ptr< const Patterns::PatternBase > > | patterns |
std::vector< std::function< void(const std::string &)> > | actions |
Static Private Attributes | |
static const char | path_separator = '.' |
Subscriptor functionality | |
Classes derived from Subscriptor provide a facility to subscribe to this object. This is mostly used by the SmartPointer class. | |
std::atomic< unsigned int > | counter |
std::map< std::string, unsigned int > | counter_map |
std::vector< std::atomic< bool > * > | validity_pointers |
const std::type_info * | object_info |
void | subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
void | unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
unsigned int | n_subscriptions () const |
template<typename StreamType > | |
void | list_subscribers (StreamType &stream) const |
void | list_subscribers () const |
void | check_no_subscribers () const noexcept |
static std::mutex | mutex |
static ::ExceptionBase & | ExcInUse (int arg1, std::string arg2, std::string arg3) |
static ::ExceptionBase & | ExcNoSubscriber (std::string arg1, std::string arg2) |
using | map_value_type = decltype(counter_map)::value_type |
using | map_iterator = decltype(counter_map)::iterator |
The class MultipleParameterLoop offers an easy possibility to test several parameter sets during one run of the program. For this it uses the ParameterHandler class to read in data in a standardized form, searches for variant entry values and performs a loop over all combinations of parameters.
Variant entry values are given like this:
* set Time step size = { 0.1 | 0.2 | 0.3 } *
The loop will then perform three runs of the program, one for each value of Time step size
, while all other parameters are as specified or with their default value. If there are several variant entry values in the input, a loop is performed for each combination of variant values:
* set Time step size = { 0.1 | 0.2 } * set Solver = { CG | GMRES } *
will result in four runs of the programs, with time step 0.1 and 0.2 for each of the two solvers.
In addition to variant entries, this class also supports array entries that look like this:
* set Output file = ofile.{{ 1 | 2 | 3 | 4 }} *
This indicates that if there are variant entries producing a total of four different runs, then we will write their results to the files ofile.1
, ofile.2
, ofile.3
and ofile.4
, respectively. Array entries do not generate multiple runs of the main loop themselves, but if there are variant entries, then in the nth run of the main loop, also the nth value of an array is returned.
Since the different variants are constructed in the order of declaration, not in the order in which the variant entries appear in the input file, it may be difficult to guess the mapping between the different variants and the appropriate entry in an array. You will have to check the order of declaration, or use only one variant entry.
It is guaranteed that only selections which match the regular expression (pattern) given upon declaration of an entry are given back to the program. If a variant value does not match the regular expression, the default value is stored and an error is issued. Before the first run of the loop, all possible values are checked for their conformance, so that the error is issued at the very beginning of the program.
The usage of this class is similar to the ParameterHandler class. First the entries and subsections have to be declared, then a loop is performed in which the different parameter sets are set, a new instance of a user class is created which is then called. Taking the classes of the example for the ParameterHandler class, the extended program would look like this:
As can be seen, first a new helper class has to be set up. This must contain a virtual constructor for a problem class. You can also derive your problem class from MultipleParameterLoop::UserClass and let create_new
clear all member variables. If you have access to all inherited member variables in some way this is the recommended procedure. A third possibility is to use multiple inheritance and derive a helper class from both the MultipleParameterLoop::UserClass and the problem class. In any case, create_new
has to provide a clean problem object which is the problem in the second and third possibility.
The derived class also has to provide for member functions which declare the entries and which run the program. Running the program includes getting the parameters out of the ParameterHandler object.
After defining an object of this helper class and an object of the MultipleParameterLoop class, the entries have to be declared in the same way as for the ParameterHandler class. Then the input has to be read. Finally the loop is called. This executes the following steps:
UserObject
is the parameter to the loop
function. create_new
is given the number of the run (starting from one) to enable naming output files differently for each run.
Variant values are specified like prefix{ v1 | v2 | v3 | ... }postfix
. Whitespace to the right of the opening brace {
is ignored as well as to the left of the closing brace }
while whitespace on the respectively other side is not ignored. Whitespace around the mid symbols |
is also ignored. The empty selection prefix{ v1 | }postfix
is also allowed and produces the strings prefixv1postfix
and prefixpostfix
.
The syntax for array values is equal, apart from the double braces: prefix{{ v1 | v2 | v3 }}postfix
.
Given the above extensions to the example program for the ParameterHandler and the following input file
* set Equation 1 = Poisson * set Equation 2 = Navier-Stokes * set Output file= results.{{ 1 | 2 | 3 | 4 | 5 | 6 }} * * subsection Equation 1 * set Matrix type = Sparse * subsection Linear solver * set Solver = CG * set Maximum number of iterations = { 10 | 20 | 30 } * end * end * * subsection Equation 2 * set Matrix type = Full * subsection Linear solver * set Solver = { BiCGStab | GMRES } * set Maximum number of iterations = 100 * end * end *
this is the output:
* LinEq: Method=CG, MaxIterations=10 * LinEq: Method=BiCGStab, MaxIterations=100 * Problem: outfile=results.1 * eq1=Poisson, eq2=Navier-Stokes * Matrix1=Sparse, Matrix2=Full * LinEq: Method=CG, MaxIterations=20 * LinEq: Method=BiCGStab, MaxIterations=100 * Problem: outfile=results.2 * eq1=Poisson, eq2=Navier-Stokes * Matrix1=Sparse, Matrix2=Full * LinEq: Method=CG, MaxIterations=30 * LinEq: Method=BiCGStab, MaxIterations=100 * Problem: outfile=results.3 * eq1=Poisson, eq2=Navier-Stokes * Matrix1=Sparse, Matrix2=Full * LinEq: Method=CG, MaxIterations=10 * LinEq: Method=GMRES, MaxIterations=100 * Problem: outfile=results.4 * eq1=Poisson, eq2=Navier-Stokes * Matrix1=Sparse, Matrix2=Full * LinEq: Method=CG, MaxIterations=20 * LinEq: Method=GMRES, MaxIterations=100 * Problem: outfile=results.5 * eq1=Poisson, eq2=Navier-Stokes * Matrix1=Sparse, Matrix2=Full * LinEq: Method=CG, MaxIterations=30 * LinEq: Method=GMRES, MaxIterations=100 * Problem: outfile=results.6 * eq1=Poisson, eq2=Navier-Stokes * Matrix1=Sparse, Matrix2=Full *
Since create_new
gets the number of the run it would also be possible to output the number of the run.
Definition at line 2070 of file parameter_handler.h.
|
inherited |
List of possible output formats used for functions like ParameterHandler::print_parameters(). The options can be categorized into two groups:
Only one format option may be specified at the time. Any function that accepts an OutputStyle as an option will throw if you specify more than one.
A number of shortcuts of commonly used option combinations are provided. E.g., ShortPRM prints the parameters in the PRM format, while skipping the documentation.
Enumerator | |
---|---|
DefaultStyle | Default stylistic style: print documentation and sort all parameters alphabetically. |
Short | Write input for ParameterHandler without comments or changed default values. |
KeepDeclarationOrder | Keep the order of the parameters as they have been declared. |
PRM | Write human readable output suitable to be read by ParameterHandler::parse_input() again. |
Text | Write human readable output suitable to be read by ParameterHandler::parse_input() again.
|
LaTeX | Write parameters as a LaTeX table. |
Description | Write out declared parameters with description and possible values.
|
XML | Write out everything as an XML file suitable to be read by ParameterHandler::parse_input_from_xml() again. See the general documentation of this class for an example of output. |
JSON | Write out everything as a JSON file suitable to be read by ParameterHandler::parse_input_from_json() again. |
ShortPRM | Write the content of ParameterHandler without comments or changed default values. |
ShortText | Write the content of ParameterHandler without comments or changed default values.
|
ShortXML | Write the content of ParameterHandler without comments or changed default values as a XML file. |
ShortJSON | Write the content of ParameterHandler without comments or changed default values as a JSON file. |
ShortLaTeX | Write the content of ParameterHandler without comments or changed default values as a LaTeX file. |
Definition at line 858 of file parameter_handler.h.
|
virtual |
Overriding virtual functions which are overloaded (like ParameterHandler::parse_input, which has two different sets of input argument types) causes the non-overridden functions to be hidden. Get around this by explicitly using both variants of ParameterHandler::parse_input and then overriding the one we care about.
Reimplemented from ParameterHandler.
Definition at line 1012 of file parameter_handler.cc.
|
virtual |
Overriding virtual functions which are overloaded (like ParameterHandler::parse_input, which has two different sets of input argument types) causes the non-overridden functions to be hidden. Get around this by explicitly using both variants of ParameterHandler::parse_input and then overriding the one we care about.
Reimplemented from ParameterHandler.
Definition at line 1039 of file parameter_handler.cc.
|
virtualinherited |
Parse input from a string to populate known parameter fields. The lines in the string must be separated by \n
characters.
The function in essence reads the entire file into a stream and then calls the other parse_input() function with that stream. See there for more information.
Definition at line 593 of file parameter_handler.cc.
|
virtualinherited |
Parse input from an XML stream to populate known parameter fields. This could be from a file originally written by the print_parameters() function using the XML output style and then modified by hand as necessary, or from a file written using this method and then modified by the graphical parameter GUI (see the general documentation of this class).
Definition at line 733 of file parameter_handler.cc.
|
virtualinherited |
Parse input from a JSON stream to populate known parameter fields. This could be from a file originally written by the print_parameters() function using the JSON output style and then modified by hand as necessary, or from a separate program that knows how to write JSON format for ParameterHandler input.
Definition at line 789 of file parameter_handler.cc.
|
inherited |
Clear all contents.
Definition at line 820 of file parameter_handler.cc.
|
inherited |
Declare a new entry with name entry
, default and for which any input has to match the pattern
(default: any pattern).
The function generates an exception of type ExcValueDoesNotMatchPattern if the default value doesn't match the given pattern, using the C++ throw mechanism. However, this exception is only generated after the entry has been created; if you have code where no sensible default value for a parameter is possible, you can then catch and ignore this exception.
The parameter documentation
defaulting to an empty string is used to add a documenting text to each entry which will be printed as a comment when this class is asked to write out all declarations to a stream using the print_parameters() function.
The parameter has_to_be_set
can be used in order to declare this parameter as a parameter whose default value has to be overwritten by one of the methods provided by this class. Whether a parameter has been set successfully can be queried by the functions get_entries_wrongly_not_set() and assert_that_entries_have_been_set().
Definition at line 829 of file parameter_handler.cc.
|
inherited |
Attach an action to the parameter with name entry
in the current section. The action needs to be a function-like object that takes the value of the parameter as a (string) argument. See the general documentation of this class for a longer description of actions, as well as examples.
The action is executed in three different circumstances:
name
, at the end of the current function. This is useful because it allows for the action to execute whatever it needs to do at least once for each parameter, even those that are not actually specified in the input file (and thus remain at their default values).It is valid to add multiple actions to the same parameter. They will in that case be executed in the same order in which they were added.
Definition at line 875 of file parameter_handler.cc.
|
inherited |
Declare a new entry name entry
, set its default value to the content of the variable parameter
, and create an action that will fill parameter
with updated values when a file is parsed, or the entry is set to a new value.
By default, the pattern to use is obtained by calling the function Patterns::Tools::Convert<T>::to_pattern(), but a custom one can be used.
The parameter has_to_be_set
can be used in order to declare this parameter as a parameter whose default value has to be overwritten by one of the methods provided by this class. Whether a parameter has been set successfully can be queried by the functions get_entries_wrongly_not_set() and assert_that_entries_have_been_set().
Definition at line 2315 of file parameter_handler.h.
|
inherited |
Create an alias for an existing entry. This provides a way to refer to a parameter in the input file using an alternate name. The alias will be in the current section, and the referenced entry needs to be an existing entry in the current section.
The primary purpose of this function is to allow for a backward compatible way of changing names in input files of applications for which backward compatibility is important. This can be achieved by changing the name of the parameter in the call to declare_entry(), and then creating an alias that maps the old name to the new name. This way, old input files can continue to refer to parameters under the old name, and they will automatically be mapped to the new parameter name.
It is valid to set the same parameter multiple times in an input file. The value that will ultimately be chosen in such cases is simply the last value set. This rule also applies to aliases, where the final value of a parameter is the last value set either through the current name of the parameter or through any of its possible multiple aliases. For example, if you have an input file that looks like
where parm1_alias
is an alias declared via
then the final value for the parameter called parm1
will be 2, not 1.
existing_entry_name | The name of an existing parameter in the current section that the alias should refer to. |
alias_name | An alternate name for the parameter referenced by the first argument. |
alias_is_deprecated | If true, mark the alias as deprecated. This will then be listed in the description of the alias if you call print_parameters(), and you will get a warning on the screen when reading an input file that contains this deprecated alias. The purpose of this argument is to be able to allow the use of an old name for a parameter (see above) but make it clear that this old name will eventually be removed. |
Definition at line 911 of file parameter_handler.cc.
|
inherited |
Enter a subsection. If it does not yet exist, create it.
Definition at line 972 of file parameter_handler.cc.
|
inherited |
Leave present subsection.
Definition at line 986 of file parameter_handler.cc.
|
inherited |
Check whether a subsection or a subsection path exists in current tree. The input parameter sub_path
is assumed to be relative to the currently selected path.
Definition at line 999 of file parameter_handler.cc.
|
inherited |
Return value of entry entry_string
. If the entry was changed, then the changed value is returned, otherwise the default value. If the value of an undeclared entry is required, an Assert
will fail.
Definition at line 1020 of file parameter_handler.cc.
|
inherited |
Return value of entry entry_string
. If the entry was changed, then the changed value is returned, otherwise the default value. If the value of an undeclared entry is required, an Assert
will fail. If entry_subsection_path
is non-empty, the value will be gotten from the subsection represented by that path instead of the current subsection. The first string in entry_subsection_path
must be the name of a subsection of the current section, and each next string must be the name of a subsection of the one before it.
Definition at line 1037 of file parameter_handler.cc.
|
inherited |
Return value of entry entry_string
as long int
. (A long int is chosen so that even very large unsigned values can be returned by this function).
Definition at line 1058 of file parameter_handler.cc.
|
inherited |
Return value of entry entry_string
as long int
. (A long int is chosen so that even very large unsigned values can be returned by this function). If entry_subsection_path
is non-empty, the value will be gotten from the subsection represented by that path instead of the current subsection.
Definition at line 1077 of file parameter_handler.cc.
|
inherited |
Return value of entry entry_name
as double
.
Definition at line 1101 of file parameter_handler.cc.
|
inherited |
Return value of entry entry_name
as double
. If entry_subsection_path
is non-empty, the value will be gotten from the subsection represented by that path instead of the current subsection.
Definition at line 1121 of file parameter_handler.cc.
|
inherited |
Return value of entry entry_name
as bool
. The entry may be "true" or "yes" for true
, "false" or "no" for false
respectively.
Definition at line 1146 of file parameter_handler.cc.
|
inherited |
Return value of entry entry_name
as bool
. The entry may be "true" or "yes" for true
, "false" or "no" for false
respectively. If entry_subsection_path
is non-empty, the value will be gotten from the subsection represented by that path instead of the current subsection.
Definition at line 1163 of file parameter_handler.cc.
|
inherited |
Change the value presently stored for entry_name
to the one given in the second argument.
The parameter must already exist in the present subsection.
The function throws an exception of type ExcValueDoesNotMatchPattern if the new value does not conform to the pattern for this entry.
Definition at line 1185 of file parameter_handler.cc.
|
inherited |
Same as above, but an overload where the second argument is a character pointer. This is necessary, since otherwise the call to set("abc","def")
will be mapped to the function taking one string and a bool as arguments, which is certainly not what is most often intended.
The function throws an exception of type ExcValueDoesNotMatchPattern if the new value does not conform to the pattern for this entry.
Definition at line 1238 of file parameter_handler.cc.
|
inherited |
Change the value presently stored for entry_name
to the one given in the second argument.
The parameter must already exist in the present subsection.
The function throws an exception of type ExcValueDoesNotMatchPattern if the new value does not conform to the pattern for this entry.
Definition at line 1260 of file parameter_handler.cc.
|
inherited |
Change the value presently stored for entry_name
to the one given in the second argument.
The parameter must already exist in the present subsection.
For internal purposes, the new value needs to be converted to a string. This is done using 16 digits of accuracy, so the set value and the one you can get back out using get_double() may differ in the 16th digit.
The function throws an exception of type ExcValueDoesNotMatchPattern if the new value does not conform to the pattern for this entry.
Definition at line 1246 of file parameter_handler.cc.
|
inherited |
Change the value presently stored for entry_name
to the one given in the second argument.
The parameter must already exist in the present subsection.
The function throws an exception of type ExcValueDoesNotMatchPattern if the new value does not conform to the pattern for this entry.
Definition at line 1273 of file parameter_handler.cc.
|
inherited |
Print all parameters with the given style
to out
.
Before printing, all current parameters and subsections are sorted alphabetically by default. This behavior can be disabled setting the optional parameter style
to KeepDeclarationOrder
: in this case entries are printed in the same order as they have been declared.
In PRM
, XML
, and JSON
format, the output is formatted in such a way that it is possible to use it for later input again. This is most useful to record the parameters for a specific run, since if you output the parameters using this function into a log file, you can always recover the results by simply copying the output to your input file.
Besides the name and value of each entry, the output also contains the default value of entries if it is different from the actual value, as well as the documenting string given to the declare_entry() function if available.
By using the flag Short
in combination with PRM
, XML
, JSON
, or LaTeX
(or by using the shortcuts ShortPRM
, ShortXML
, ShortJSON
, or ShortLaTeX
), a reduced output can be generated, only containing the values and skipping the documentation.
In XML
format, the output starts with one root element ParameterHandler
in order to get a valid XML document and all subsections under it.
In LaTeX
format, the output contains the same information but in a format so that the resulting file can be input into a latex document such as a manual for the code for which this object handles run-time parameters. The various sections of parameters are then represented by latex section and subsection commands as well as by nested enumerations.
You can reference specific parameter sections and individual parameters by the labels that are generated automatically for each entry. The labels have the format parameters:section1/subsection1
and parameters:section1/subsection1/someentry
. Because special characters can appear in the section and entry names, these will be "mangled". Here, all characters except [a-zA-Z0-9]
are replaced by _XX
, where XX
is the two-digit ascii code of the character in hexadecimal encoding (so a space becomes _20
for example).
While this function escapes special LaTeX-specific characters (backslash, underscore, etc.) in most of the output (names, default values, etc.), the documentation string is passed as-is. This means you can use math environments and other formatting in the description, but you need to escape quotes, backslashes, underscores, etc. yourself.
In addition, all parameter names are listed with \index
statements in two indices called prmindex
(where the name of each parameter is listed in the index) and prmindexfull
where parameter names are listed sorted by the section in which they exist. By default, the LaTeX program ignores these \index
commands, but they can be used to generate an index by using the following commands in the preamble of the latex file :
and at the end of the file this:
Definition at line 1283 of file parameter_handler.cc.
|
inherited |
Print all parameters to the file given by filename
with the given output style style
.
This function deduces the output format from the extension of the specified filename. Supported extensions are prm
, xml
, tex
, and json
. Hence, it is not necessary to specify an output format via the style
argument as long as one of these extensions is added to the filename. If an output format is specified in the style
parameter nevertheless, the output format has to be consistent with the filename extension.
If no extension is specified or the extension is not supported, the output format is deduced from the style
argument.
If neither the extension is supported, nor does the style
parameter contain a format specification, an assertion is thrown.
filename | The output file name. |
style | The style with which output is produced. |
Definition at line 1389 of file parameter_handler.cc.
|
inherited |
Print parameters to a logstream. This function allows to print all parameters into a log-file. Sections will be indented in the usual log- file style.
All current parameters and subsections are sorted alphabetically by default. This behavior can be disabled setting the optional parameter style
to KeepDeclarationOrder
: in this case entries are printed in the same order as they have been declared.
style
not related to the ordering are ignored. Definition at line 1790 of file parameter_handler.cc.
|
inherited |
Log parameters in the present subsection. The subsection is determined by the subsection_path
member variable. This variable is controlled by entering and leaving subsections through the enter_subsection() and leave_subsection() functions.
All current parameters and subsections are sorted alphabetically by default. This behavior can be disabled setting the optional parameter style
to KeepDeclarationOrder
: in this case entries are printed in the same order as they have been declared.
style
not related to the ordering are ignored.In most cases, you will not want to use this function directly, but have it called recursively by the previous function.
Definition at line 1801 of file parameter_handler.cc.
|
inlineinherited |
Write the data of this object to a stream for the purpose of serialization using the BOOST serialization library.
Definition at line 2277 of file parameter_handler.h.
|
inlineinherited |
Read the data of this object from a stream for the purpose of serialization using the BOOST serialization library.
Definition at line 2296 of file parameter_handler.h.
|
inherited |
Write and read the data of this object from a stream for the purpose of serialization using the BOOST serialization library.
|
inherited |
Test for equality.
Definition at line 2060 of file parameter_handler.cc.
|
inherited |
Return a set of parameter names (including subsection names) corresponding to those entries of the parameter handler that have not been set by one of the functions parsing parameters from an input file or by an explicit call to one of the set() functions, but that have been declared as mandatory parameters that must be set (through the last argument of the declare_entry() function or add_parameter() function).
Definition at line 2085 of file parameter_handler.cc.
|
inherited |
Asserts that those entries of the parameter handler with flag has_to_be_set = true
have been set. An exception is invoked if at least one of these parameters has not been set.
Definition at line 2099 of file parameter_handler.cc.