diff --git a/web/content/docs/processes/heat-transport/HEAT_TRANSPORT_BHE/index.md b/web/content/docs/processes/heat-transport/HEAT_TRANSPORT_BHE/index.md index 9d238fca94b7c736e4dc41517464ac6de4a59bd3..ac51da0c841f2de5ef830ae1b85b20f3170a0780 100644 --- a/web/content/docs/processes/heat-transport/HEAT_TRANSPORT_BHE/index.md +++ b/web/content/docs/processes/heat-transport/HEAT_TRANSPORT_BHE/index.md @@ -193,6 +193,18 @@ Here is an example in which the circulating fluid is water at about 15 $^{\circ} </refrigerant> ``` +## Available Nonlinear Solvers + +In the `HEAT_TRANSPORT_BHE` process, both Picard and Newton nonlinear solvers are supported. +With the Picard solver, the linear equation system is iterated until the change in the solution vector is small enough (typically less than 1E-6). +With the Newton approach, the global Jacobian matrix and residual vector are evaluated in each iteration, in order to solve for the change of solution vector in each iteration. +The solved change vector is then further used to update the global solution vector. +Typically, after 5 to 8 iterations, the Newton approach leads to a globally converged solution, i.e. the norm of the residual vector is less than certain tolerance (e.g. relative tolerance less than 1E-10). +When configuring an OGS project with the `HEAT_TRANSPORT_BHE` process, Picard iterations will be sufficient when the time step size is kept small (tens of seconds). +However, when the time step is large (hours or days), Newton iterations may reach convergence much faster than the Picard approach. + +For more information regarding how to configure the Picard and Newton nonlinear solvers, please also refer to the section in [Project File - Building Blocks](/docs/userguide/blocks/nonlinear_solvers) + ## References <!-- vale off --> diff --git a/web/content/docs/userguide/blocks/nonlinear_solvers.md b/web/content/docs/userguide/blocks/nonlinear_solvers.md index 73146e1477968e1323530c41511787fa6511cf72..c69a5edfef9d6d9ad69151b8026a7e36d1483525 100644 --- a/web/content/docs/userguide/blocks/nonlinear_solvers.md +++ b/web/content/docs/userguide/blocks/nonlinear_solvers.md @@ -29,13 +29,13 @@ Following non-linear solvers are available in OpenGeoSys: <!-- TODO: add content --> The nonlinear solver of "Newton" type is an implementation of the Newton-Raphson method. -The basic definition of the non-linear solver follows this template: +The basic definition of the non-linear solver with "Newton" follows this template: ```xml <nonlinear_solver> <name>basic_newton</name> <type>Newton</type> - <max_iter>100</max_iter> + <max_iter>10</max_iter> <linear_solver>linear_solver</linear_solver> </nonlinear_solver> ``` @@ -43,3 +43,15 @@ The basic definition of the non-linear solver follows this template: ## Picard <!-- TODO: add content --> + +The nonlinear solver of "Picard" type is an implementation of the Picard-Iteration method. +The basic definition of the non-linear solver with "Picard" follows this template: + +```xml +<nonlinear_solver> + <name>basic_picard</name> + <type>Picard</type> + <max_iter>100</max_iter> + <linear_solver>linear_solver</linear_solver> +</nonlinear_solver> +```