diff --git a/Documentation/ProjectFile/linear_solver/c_linear_solver.md b/Documentation/ProjectFile/linear_solver/c_linear_solver.md index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2421001b7de105ef51cf5db89ec0a636d0f37a25 100644 --- a/Documentation/ProjectFile/linear_solver/c_linear_solver.md +++ b/Documentation/ProjectFile/linear_solver/c_linear_solver.md @@ -0,0 +1,6 @@ +In this group the configuration of linear solvers is described. + +Unlike all other options, there can be configurations for linear solvers from +the Eigen, LIS, PETSc, etc. libraries at the same time. Which solver will be +applied in the end is determined by the build configuration of the OGS +executable. diff --git a/Documentation/ProjectFile/linear_solver/eigen/i_eigen.md b/Documentation/ProjectFile/linear_solver/eigen/i_eigen.md index 576add64edccf5d980a0ff86143dc43a7109a788..dae5722ba942db73637d85cb38da193cd8d8e0dd 100644 --- a/Documentation/ProjectFile/linear_solver/eigen/i_eigen.md +++ b/Documentation/ProjectFile/linear_solver/eigen/i_eigen.md @@ -1 +1,3 @@ -\ogs_missing_documentation +Configuration for solvers from the Eigen library. + +For details see also the [documentation of the Eigen library](https://eigen.tuxfamily.org/dox/group__Sparse__Reference.html). diff --git a/Documentation/ProjectFile/linear_solver/eigen/t_error_tolerance.md b/Documentation/ProjectFile/linear_solver/eigen/t_error_tolerance.md index 576add64edccf5d980a0ff86143dc43a7109a788..a04ed05818f6e2cc8a6ec74741f0f429c4f1ab91 100644 --- a/Documentation/ProjectFile/linear_solver/eigen/t_error_tolerance.md +++ b/Documentation/ProjectFile/linear_solver/eigen/t_error_tolerance.md @@ -1 +1,5 @@ -\ogs_missing_documentation +The tolerance of the linear solver. + +This setting is only applied if an iterative solver is chosen. + +Its default values is \f$10^{-16}\f$. diff --git a/Documentation/ProjectFile/linear_solver/eigen/t_max_iteration_step.md b/Documentation/ProjectFile/linear_solver/eigen/t_max_iteration_step.md index 576add64edccf5d980a0ff86143dc43a7109a788..bf4f34849e6b42c8297a9ca276bc8cb66f2bbfb0 100644 --- a/Documentation/ProjectFile/linear_solver/eigen/t_max_iteration_step.md +++ b/Documentation/ProjectFile/linear_solver/eigen/t_max_iteration_step.md @@ -1 +1,5 @@ -\ogs_missing_documentation +Defines the maximum number of iterations of the iterative solver. + +This setting is ignored if a direct solver is chosen. + +Its default value is \f$10^6\f$. diff --git a/Documentation/ProjectFile/linear_solver/eigen/t_precon_type.md b/Documentation/ProjectFile/linear_solver/eigen/t_precon_type.md index 576add64edccf5d980a0ff86143dc43a7109a788..4a19a2c9fe9ecda78ac8b3e2d65604af79e57db1 100644 --- a/Documentation/ProjectFile/linear_solver/eigen/t_precon_type.md +++ b/Documentation/ProjectFile/linear_solver/eigen/t_precon_type.md @@ -1 +1,7 @@ -\ogs_missing_documentation +Chooses a specific preconditioner for the iterative linear solver. + +This setting is ignored if a direct solver is selected. + +Possible values are NONE, DIAGONAL and ILUT. + +The default is NONE. diff --git a/Documentation/ProjectFile/linear_solver/eigen/t_solver_type.md b/Documentation/ProjectFile/linear_solver/eigen/t_solver_type.md index 576add64edccf5d980a0ff86143dc43a7109a788..47d836f7c3723ad065f2d71a160f552dae535da5 100644 --- a/Documentation/ProjectFile/linear_solver/eigen/t_solver_type.md +++ b/Documentation/ProjectFile/linear_solver/eigen/t_solver_type.md @@ -1 +1,5 @@ -\ogs_missing_documentation +Chooses a specific linear solver. + +Possible values are CG, BiCGSTAB, and SparseLU. + +The default is SparseLU. diff --git a/Documentation/ProjectFile/linear_solver/petsc/i_petsc.md b/Documentation/ProjectFile/linear_solver/petsc/i_petsc.md index 576add64edccf5d980a0ff86143dc43a7109a788..d140d41ce7ff839cc1b0fb0fbca084207e62c1cd 100644 --- a/Documentation/ProjectFile/linear_solver/petsc/i_petsc.md +++ b/Documentation/ProjectFile/linear_solver/petsc/i_petsc.md @@ -1 +1,4 @@ -\ogs_missing_documentation +Configures options for linear solvers from the PETSc library. + +For further details see also the +[documentation of the PETSc library](http://www.mcs.anl.gov/petsc/documentation/) diff --git a/Documentation/ProjectFile/linear_solver/petsc/t_parameters.md b/Documentation/ProjectFile/linear_solver/petsc/t_parameters.md index 576add64edccf5d980a0ff86143dc43a7109a788..816c46eb4695293150803e4314d82ce93ec79e9a 100644 --- a/Documentation/ProjectFile/linear_solver/petsc/t_parameters.md +++ b/Documentation/ProjectFile/linear_solver/petsc/t_parameters.md @@ -1 +1,8 @@ -\ogs_missing_documentation +Sets PETSc options from the given parameter string. + +The default value is <tt>"-ksp_type cg -pc_type bjacobi -ksp_rtol 1e-16 -ksp_max_it 10000"</tt> + +\attention +PETSc can also receive options from the commandline arguments. However, the +values from the prj file are applied directly to the linear solver. If +specifying both, make sure that you check which options take precedence. diff --git a/Documentation/ProjectFile/linear_solver/petsc/t_prefix.md b/Documentation/ProjectFile/linear_solver/petsc/t_prefix.md index 576add64edccf5d980a0ff86143dc43a7109a788..3b980ae43308b466fce8270e8eaa0ba0c47a1f8b 100644 --- a/Documentation/ProjectFile/linear_solver/petsc/t_prefix.md +++ b/Documentation/ProjectFile/linear_solver/petsc/t_prefix.md @@ -1 +1,3 @@ -\ogs_missing_documentation +Sets the options prefix for this PETSc linear solver. + +Cf. the PETSc [KSPSetOptionsPrefix documentation](http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/KSP/KSPSetOptionsPrefix.html). diff --git a/Documentation/ProjectFile/linear_solver/t_lis.md b/Documentation/ProjectFile/linear_solver/t_lis.md index 576add64edccf5d980a0ff86143dc43a7109a788..f5fa016fbc09165c3e4245948dfb07e5dc65bd22 100644 --- a/Documentation/ProjectFile/linear_solver/t_lis.md +++ b/Documentation/ProjectFile/linear_solver/t_lis.md @@ -1 +1,11 @@ -\ogs_missing_documentation +Defines an option string that will be passed to solvers of the LIS library. + +The default is <tt>-initx_zeros 0</tt>, i.e., not to overwrite the passed initial +guess with zeroes. All other options are appended to this default value. + +\attention +LIS can also receive options from the commandline arguments. However, the values +from the prj file are applied directly to the linear solver. If specifying both, +make sure that you check which options take precedence. + +Refer to the [documentation of LIS](http://www.ssisc.org/lis/index.en.html) for further details. diff --git a/Documentation/ProjectFile/linear_solver/t_name.md b/Documentation/ProjectFile/linear_solver/t_name.md index 576add64edccf5d980a0ff86143dc43a7109a788..fe6b18dc8b32671869a297960c260409f44c8015 100644 --- a/Documentation/ProjectFile/linear_solver/t_name.md +++ b/Documentation/ProjectFile/linear_solver/t_name.md @@ -1 +1,3 @@ -\ogs_missing_documentation +Name of the linear solver. + +Used, e.g., to reference it in the nonlinear solver configuation. diff --git a/Documentation/ProjectFile/ode_solver/CVODE/c_CVODE.md b/Documentation/ProjectFile/ode_solver/CVODE/c_CVODE.md index 576add64edccf5d980a0ff86143dc43a7109a788..ebab6712d2ec4c0ef92084bda9409e98f2327477 100644 --- a/Documentation/ProjectFile/ode_solver/CVODE/c_CVODE.md +++ b/Documentation/ProjectFile/ode_solver/CVODE/c_CVODE.md @@ -1 +1,3 @@ -\ogs_missing_documentation +Settings for the CVODE solver from SUNDIALS + +For further details see also the [SUNDIALS website](http://computation.llnl.gov/projects/sundials/cvode). diff --git a/Documentation/ProjectFile/ode_solver/CVODE/t_linear_multistep_method.md b/Documentation/ProjectFile/ode_solver/CVODE/t_linear_multistep_method.md index 576add64edccf5d980a0ff86143dc43a7109a788..923d2aa4ba22e9055cb3d6e559347ae828a04cc1 100644 --- a/Documentation/ProjectFile/ode_solver/CVODE/t_linear_multistep_method.md +++ b/Documentation/ProjectFile/ode_solver/CVODE/t_linear_multistep_method.md @@ -1 +1,6 @@ -\ogs_missing_documentation +Sets the linear multistep method used for solving the ODE. + +Possible values are <tt>Adams</tt> for the Adams-Moulton method and <tt>BDF</tt> +for backward differentiation formulas. + +The default value is <tt>Adams</tt>. diff --git a/Documentation/ProjectFile/ode_solver/CVODE/t_nonlinear_solver_iteration.md b/Documentation/ProjectFile/ode_solver/CVODE/t_nonlinear_solver_iteration.md index 576add64edccf5d980a0ff86143dc43a7109a788..52a06f2121afd5e08b6aaa59e3adea54dc7b2f89 100644 --- a/Documentation/ProjectFile/ode_solver/CVODE/t_nonlinear_solver_iteration.md +++ b/Documentation/ProjectFile/ode_solver/CVODE/t_nonlinear_solver_iteration.md @@ -1 +1,6 @@ -\ogs_missing_documentation +Defines the method used for solving the arising nonlinear equationsystems. + +Possible values are <tt>Functional</tt> for fixed point iterations and +<tt>Newton</tt> for the Newton method. + +The default is <tt>Functional</tt>. diff --git a/Documentation/ProjectFile/ode_solver/c_ode_solver.md b/Documentation/ProjectFile/ode_solver/c_ode_solver.md index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..58498f216e12d0f48309e7682085c84dab1c79b8 100644 --- a/Documentation/ProjectFile/ode_solver/c_ode_solver.md +++ b/Documentation/ProjectFile/ode_solver/c_ode_solver.md @@ -0,0 +1,2 @@ +In this group ODE solver settings for ODE solvers from external libraries are +described. diff --git a/Documentation/ProjectFile/prj/linear_solvers/i_linear_solvers.md b/Documentation/ProjectFile/prj/linear_solvers/i_linear_solvers.md index 576add64edccf5d980a0ff86143dc43a7109a788..b18a1074e7e43a302c36cdf4b4dafea0e8429e32 100644 --- a/Documentation/ProjectFile/prj/linear_solvers/i_linear_solvers.md +++ b/Documentation/ProjectFile/prj/linear_solvers/i_linear_solvers.md @@ -1 +1 @@ -\ogs_missing_documentation +Contains linear solver settings. diff --git a/Documentation/ProjectFile/prj/linear_solvers/linear_solver/i_linear_solver.md b/Documentation/ProjectFile/prj/linear_solvers/linear_solver/i_linear_solver.md index 576add64edccf5d980a0ff86143dc43a7109a788..21e2a2010b77c5b24da255a80f74cd6681ef283d 100644 --- a/Documentation/ProjectFile/prj/linear_solvers/linear_solver/i_linear_solver.md +++ b/Documentation/ProjectFile/prj/linear_solvers/linear_solver/i_linear_solver.md @@ -1 +1,3 @@ -\ogs_missing_documentation +Defines a single linear solver. + +See \ref ogs_file_param__linear_solver. diff --git a/Documentation/ProjectFile/prj/nonlinear_solvers/i_nonlinear_solvers.md b/Documentation/ProjectFile/prj/nonlinear_solvers/i_nonlinear_solvers.md index 576add64edccf5d980a0ff86143dc43a7109a788..617b5386e4911c093fc9e5b730b48006d8eb6d17 100644 --- a/Documentation/ProjectFile/prj/nonlinear_solvers/i_nonlinear_solvers.md +++ b/Documentation/ProjectFile/prj/nonlinear_solvers/i_nonlinear_solvers.md @@ -1 +1 @@ -\ogs_missing_documentation +Contains nonlinear solver settings. diff --git a/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/Picard/c_Picard.md b/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/Picard/c_Picard.md deleted file mode 100644 index 576add64edccf5d980a0ff86143dc43a7109a788..0000000000000000000000000000000000000000 --- a/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/Picard/c_Picard.md +++ /dev/null @@ -1 +0,0 @@ -\ogs_missing_documentation diff --git a/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/i_nonlinear_solver.md b/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/i_nonlinear_solver.md index 576add64edccf5d980a0ff86143dc43a7109a788..cbd405790981f018f0a0ab8c399fdbcb52ca639f 100644 --- a/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/i_nonlinear_solver.md +++ b/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/i_nonlinear_solver.md @@ -1 +1 @@ -\ogs_missing_documentation +Defines a single nonlinear solver. diff --git a/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_linear_solver.md b/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_linear_solver.md index 576add64edccf5d980a0ff86143dc43a7109a788..66686d595320bcb3cb0682696664c3d4f8a70bed 100644 --- a/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_linear_solver.md +++ b/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_linear_solver.md @@ -1 +1,4 @@ -\ogs_missing_documentation +Specifies the linear solver used to solve the linearized equation systems. + +The linear solver is referenced by \ref ogs_file_param__linear_solver__name +"name". diff --git a/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_max_iter.md b/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_max_iter.md index 576add64edccf5d980a0ff86143dc43a7109a788..7f91deaa6d3039000c16ba97773cb999b1d13d95 100644 --- a/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_max_iter.md +++ b/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_max_iter.md @@ -1 +1,4 @@ -\ogs_missing_documentation +Specifies the maximum number of iterations the nonlinear solver can make for +solving a single equation system. + +The nonlinear solver will fail when this number is exceeded. diff --git a/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_name.md b/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_name.md index 576add64edccf5d980a0ff86143dc43a7109a788..4651bb622299c25dcbb84de1b9d1bf945e4f8266 100644 --- a/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_name.md +++ b/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_name.md @@ -1 +1,3 @@ -\ogs_missing_documentation +Name of the nonlinear solver. + +Used to specify which process is solved by which nonlinear solver. diff --git a/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_type.md b/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_type.md index 576add64edccf5d980a0ff86143dc43a7109a788..3da8618c7a31efb451a2934e429c2f5544b9d052 100644 --- a/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_type.md +++ b/Documentation/ProjectFile/prj/nonlinear_solvers/nonlinear_solver/t_type.md @@ -1 +1,3 @@ -\ogs_missing_documentation +Type of the nonlinear solver. + +Can be <tt>Picard</tt> or <tt>Newton</tt>. diff --git a/MathLib/LinAlg/Lis/LisOption.h b/MathLib/LinAlg/Lis/LisOption.h index db222b8ba163f5d9a4b980e5ac8f2e56ab84dc3f..d3313d8d82f02facbf2b4f50bc9b3abde0728609 100644 --- a/MathLib/LinAlg/Lis/LisOption.h +++ b/MathLib/LinAlg/Lis/LisOption.h @@ -54,7 +54,7 @@ struct LisOption } } - std::string _option_string = "-initxzeros 0"; + std::string _option_string = "-initx_zeros 0"; }; } diff --git a/NumLib/ODESolver/NonlinearSolver.cpp b/NumLib/ODESolver/NonlinearSolver.cpp index 4456263c744e8dfd16719a7d77550d77b3bde0a4..990d00a8ce1f5338dffa0f719ab6daa7ed3cec8b 100644 --- a/NumLib/ODESolver/NonlinearSolver.cpp +++ b/NumLib/ODESolver/NonlinearSolver.cpp @@ -319,7 +319,6 @@ createNonlinearSolver(GlobalLinearSolver& linear_solver, //! \ogs_file_param{prj__nonlinear_solvers__nonlinear_solver__max_iter} auto const max_iter = config.getConfigParameter<unsigned>("max_iter"); - //! \ogs_file_param_special{prj__nonlinear_solvers__nonlinear_solver__Picard} if (type == "Picard") { auto const tag = NonlinearSolverTag::Picard; using ConcreteNLS = NonlinearSolver<tag>; diff --git a/scripts/doc/linked-xml-file.py b/scripts/doc/linked-xml-file.py index 3e718bab98be33dbaec1eee681f8624d845d7131..521e7fe0e983c152c0f0679df0248b60b35b07ec 100755 --- a/scripts/doc/linked-xml-file.py +++ b/scripts/doc/linked-xml-file.py @@ -51,6 +51,14 @@ def format_if_documented(is_doc, fmt, fullpagename, tag_attr, *args): return fmt.format(tag_attr_formatted, tag_attr, *args) +def format_if_documented_nowarn(is_doc, fmt, fullpagename, tag_attr, *args): + if is_doc: + tag_attr_formatted = r'\ref {0} "{1}"'.format(fullpagename, tag_attr) + else: + tag_attr_formatted = tag_attr + + return fmt.format(tag_attr_formatted, tag_attr, *args) + def get_tagpath(pagename, typetag, typetag_levels_up): tagpath = pagename.replace("__", ".") is_doc = (tagpath, True) in documented_tags_attrs @@ -128,12 +136,14 @@ def print_tags(node, level, pagename, fh, typetag, typetag_levels_up, relfilepat else: typepagename = node.text.strip() - typetagpath = typepagename.replace("__", ".") - dict_of_set_add(map_tag_to_prj_files, typetagpath, relfilepath) - # print_("type tag path:", typetagpath) + typetagpath, typepagename, type_is_doc = get_tagpath(typepagename, None, 0) + if type_is_doc: + dict_of_set_add(map_tag_to_prj_files, typetagpath, relfilepath) typepagename = "ogs_file_param__" + typepagename - type_text_formatted = format_if_documented(is_doc, \ + # If the content of a type tag is undocumented no red + # "undocumented..." HTML code will be generated. + type_text_formatted = format_if_documented_nowarn(type_is_doc, \ '{0}', typepagename, node.text.strip()) fh.write(format_if_documented(is_doc, \