USER GUIDE

Nonlinear solvers

Work in progress

This page is a work in progress.

It was published in this state to make existing content available to users and highlight missing parts to contributors.

Contributors: please see Documentation Contribution Guide to contribute to the documentation.

Users: the content of this page has been verified and is correct. Please return later for more content!

Following non-linear solvers are available in OpenGeoSys:

Newton

The nonlinear solver of “Newton” type is an implementation of the Newton-Raphson method. The basic definition of the non-linear solver with “Newton” follows this template:

<nonlinear_solver>
    <name>basic_newton</name>
    <type>Newton</type>
    <max_iter>10</max_iter>
    <linear_solver>linear_solver</linear_solver>
</nonlinear_solver>

Configuration parameters

  • name: Unique identifier for the nonlinear solver.
  • type: Must be Newton for this solver type.
  • max_iter: Maximum number of nonlinear iterations.
  • linear_solver: Reference to a defined linear solver.
  • recompute_jacobian: (Optional, default: 1) Frequency of Jacobian recalculation. 1 means recalculate every iteration.
  • damping: (Optional, default: 1.0) Damping factor for the Newton update.
  • damping_reduction: (Optional) Factor by which the damping is reduced when convergence is slow.
  • tikhonov: (Optional) Tikhonov regularisation configuration (see below).

Tikhonov regularisation

Tikhonov regularisation can be used to improve convergence for ill-conditioned systems by adding a value to the diagonal of the Jacobian matrix:

<nonlinear_solver>
    <name>newton_with_tikhonov</name>
    <type>Newton</type>
    <max_iter>100</max_iter>
    <linear_solver>linear_solver</linear_solver>
    <tikhonov>
        <lambda>1e-14</lambda>
        <starting_iteration>11</starting_iteration>
    </tikhonov>
</nonlinear_solver>

The tikhonov element contains:

  • lambda: The regularisation parameter (typically 1e-20 to 1e-10).
  • starting_iteration: The iteration from which regularisation is applied (default: 0).

Picard

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:

<nonlinear_solver>
    <name>basic_picard</name>
    <type>Picard</type>
    <max_iter>100</max_iter>
    <linear_solver>linear_solver</linear_solver>
</nonlinear_solver>

This article was written by Feliks Kiszkurno. If you are missing something or you find an error please reach out to us on our forum.
Generated with Hugo 0.164.0 in CI job 825193 | Last revision: April 20, 2026
Commit: refactor(MeshLib): remove PropertyVector::push_back 870422dde  | Edit this page on