From 974a5fd534604b962dc7b3da25e08b2ff2a7d17e Mon Sep 17 00:00:00 2001 From: bangerth Date: Thu, 9 Sep 2010 02:25:16 +0000 Subject: [PATCH] Augment ParameterHandler documentation. git-svn-id: https://svn.dealii.org/trunk@21900 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/base/include/base/parameter_handler.h | 133 ++++++++++++++---- .../doc/doxygen/images/parameter_handler.fig | 27 ++++ .../doc/doxygen/images/parameter_handler.png | Bin 0 -> 28060 bytes .../images/parameter_handler_background.png | Bin 0 -> 22309 bytes 4 files changed, 131 insertions(+), 29 deletions(-) create mode 100644 deal.II/doc/doxygen/images/parameter_handler.fig create mode 100644 deal.II/doc/doxygen/images/parameter_handler.png create mode 100644 deal.II/doc/doxygen/images/parameter_handler_background.png diff --git a/deal.II/base/include/base/parameter_handler.h b/deal.II/base/include/base/parameter_handler.h index 10a5bafefe..c9c48367d3 100644 --- a/deal.II/base/include/base/parameter_handler.h +++ b/deal.II/base/include/base/parameter_handler.h @@ -824,14 +824,16 @@ namespace Patterns * * void LinEq::declare_parameters (ParameterHandler &prm) { * prm.enter_subsection("Linear solver"); - * prm.declare_entry ("Solver", - * "CG", - * Patterns::Selection("CG|GMRES|GaussElim"), - * "Name of a linear solver for the inner iteration"); - * prm.declare_entry ("Maximum number of iterations", - * "20", - * ParameterHandler::RegularExpressions::Integer()); - * ... + * { + * prm.declare_entry ("Solver", + * "CG", + * Patterns::Selection("CG|GMRES|GaussElim"), + * "Name of a linear solver for the inner iteration"); + * prm.declare_entry ("Maximum number of iterations", + * "20", + * ParameterHandler::RegularExpressions::Integer()); + * ... + * } * prm.leave_subsection (); * } * @endcode @@ -842,10 +844,12 @@ namespace Patterns * @code * void NonLinEq::declare_parameters (ParameterHandler &prm) { * prm.enter_subsection ("Nonlinear solver"); - * prm.declare_entry ("Nonlinear method", - * "Newton-Raphson", - * ParameterHandler::RegularExpressions::Anything()); - * eq.declare_parameters (prm); + * { + * prm.declare_entry ("Nonlinear method", + * "Newton-Raphson", + * ParameterHandler::RegularExpressions::Anything()); + * eq.declare_parameters (prm); + * } * prm.leave_subsection (); * } * @endcode @@ -862,13 +866,19 @@ namespace Patterns * @code * void NonLinEq::declare_parameters (ParameterHandler &prm) { * prm.enter_subsection ("Nonlinear solver"); - * prm.enter_subsection ("Linear solver 1"); - * eq1.declare_parameters (prm); - * prm.leave_subsection (); - * - * prm.enter_subsection ("Linear solver 2"); - * eq2.declare_parameters (prm); - * prm.leave_subsection (); + * { + * prm.enter_subsection ("Linear solver 1"); + * { + * eq1.declare_parameters (prm); + * } + * prm.leave_subsection (); + * + * prm.enter_subsection ("Linear solver 2"); + * { + * eq2.declare_parameters (prm); + * } + * prm.leave_subsection (); + * } * prm.leave_subsection (); * } * @endcode @@ -1208,13 +1218,83 @@ namespace Patterns * Matrix1=Sparse, Matrix2=Full * @endverbatim * - *

References

* - * This class is inspired by the MenuSystem class of DiffPack. * - * @ingroup input + *

Representation of Parameters

+ * + * Here is some more internal information about the repesentation of + * parameters: * - * @author Wolfgang Bangerth, October 1997, revised February 1998 + * Logically, parameters and the nested sections they are arranged in can be + * thought of as a hierarchical directory structure, or a tree. Take, for + * example, the following code declaring a set of parameters and sections + * they live in: + * @code + * ParameterHandler prm; + * + * prm.declare_entry ("Maximal number of iterations", + * "10", + * Patterns::Integer (1, 1000), + * "A parameter that describes the maximal number of " + * "iterations the CG method is to take before giving " + * "up on a matrix."); + * prm.enter_subsection ("Preconditioner"); + * { + * prm.declare_parameter ("Kind", + * "SSOR", + * Patterns::Selection ("SSOR|Jacobi"), + * "A string that describes the kind of preconditioner " + * "to use."); + * prm.declare_parameter ("Relaxation factor", + * "1.0", + * Patterns::Double (0, 1), + * "The numerical value (between zero and one) for the " + * "relaxation factor to use in the preconditioner."); + * } + * prm.leave_subsection (); + * @endcode + * + * We can think of the parameters so arrange as a file system in which every + * parameter is a directory. The name of this directory is the name of the + * parameter, and in this directory lie files that describe the + * parameter. These files are: + * - value: The content of this file is the current value of this + * parameter; initially, the content of the file equals the default value of + * the parameter. + * - default_value: The content of this file is the default value + * value of the parameter. + * - pattern: A textual representation of the pattern that describes + * the parameter's possible values. + * - pattern_index: A number that indexes the Patterns::PatternBase + * object that is used to to describe the parameter. + * - documentation: The content of this file is the documentation + * given for a parameter as the last argument of the + * ParameterHandler::declare_entry call. + * With the exception of the value file, the contents of files + * are never changed after declaration of a parameter. + * + * Alternatively, a directory in this file system may not have a file called + * value in it. In that case, the directory represents a + * subsection as declared above, and the directory's name will correspond to + * the name of the subsection. It will then have no files in it at all, but + * it may have further directories in it: some of these directories will be + * parameters (indicates by the presence of files) or further nested + * subsections. + * + * Given this explanation, the code above will lead to a hierarchical + * representation of data that looks like this (the content of files is + * indicated at the right in a different font): + * @image html parameter_handler.png + * Once parameters have been read in, the contents of the value + * "files" may be different while the other files remain untouched. + * + * Using the ParameterHandler::print_parameters() function with + * ParameterHandler::XML as second argument, we can get a complete + * representation of this data structure in XML. It will look like + * this: + * + * @ingroup input + * @author Wolfgang Bangerth, October 1997, revised February 1998, 2010 */ class ParameterHandler : public Subscriptor { @@ -1978,13 +2058,8 @@ class ParameterHandler : public Subscriptor * the number of the run. * * - *

References

- * - * This class is inspired by the Multipleloop class of DiffPack. - * * @ingroup input - * - * @author Wolfgang Bangerth, October 1997 + * @author Wolfgang Bangerth, October 1997, 2010 */ class MultipleParameterLoop : public ParameterHandler { diff --git a/deal.II/doc/doxygen/images/parameter_handler.fig b/deal.II/doc/doxygen/images/parameter_handler.fig new file mode 100644 index 0000000000..56d16d64e4 --- /dev/null +++ b/deal.II/doc/doxygen/images/parameter_handler.fig @@ -0,0 +1,27 @@ +#FIG 3.2 Produced by xfig version 3.2.5b +Landscape +Center +Metric +A4 +100.00 +Single +-2 +1200 2 +2 5 0 1 0 -1 57 -1 -1 0.000 0 0 -1 0 0 5 + 0 parameter_handler_background.png + 450 315 10935 315 10935 5837 450 5837 450 315 +4 0 0 50 -1 19 12 0.0000 4 135 105 4500 1665 0\001 +4 0 0 50 -1 19 12 0.0000 4 195 3480 4500 5040 [Floating point range 0...1 (inclusive)]\001 +4 0 0 50 -1 19 12 0.0000 4 135 210 4500 1935 10\001 +4 0 0 50 -1 19 12 0.0000 4 195 3135 4500 1350 [Integer range 1...1000 (inclusive)]\001 +4 0 0 50 -1 19 12 0.0000 4 195 4650 4500 1080 A parameter that describes the maximal number...\001 +4 0 0 50 -1 19 12 0.0000 4 135 210 4500 810 10\001 +4 0 0 50 -1 19 12 0.0000 4 135 105 4500 5355 2\001 +4 0 0 50 -1 19 12 0.0000 4 135 105 4500 3645 1\001 +4 0 0 50 -1 19 12 0.0000 4 150 555 4500 3960 SSOR\001 +4 0 0 50 -1 19 12 0.0000 4 180 1230 4500 3375 SSOR|Jacobi\001 +4 0 0 50 -1 19 12 0.0000 4 195 2280 4500 3105 A string that describes...\001 +4 0 0 50 -1 19 12 0.0000 4 150 555 4500 2790 SSOR\001 +4 0 0 50 -1 19 12 0.0000 4 135 270 4500 4500 1.0\001 +4 0 0 50 -1 19 12 0.0000 4 135 270 4500 5625 1.0\001 +4 0 0 50 -1 19 12 0.0000 4 180 3825 4500 4770 The numerical value (between zero and...\001 diff --git a/deal.II/doc/doxygen/images/parameter_handler.png b/deal.II/doc/doxygen/images/parameter_handler.png new file mode 100644 index 0000000000000000000000000000000000000000..ca1ab96e45c9f0391b7e79cecedf7c40d3457881 GIT binary patch literal 28060 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 Y@V}iVejTExK1xDvmrKOj{9m&CA8YL#mH+?% literal 0 HcmV?d00001 diff --git a/deal.II/doc/doxygen/images/parameter_handler_background.png b/deal.II/doc/doxygen/images/parameter_handler_background.png new file mode 100644 index 0000000000000000000000000000000000000000..46a08b4f45719be3e487ff150608b396f543c53a GIT binary patch literal 22309 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