OOF2: The Manual

Name

NewtonDriver (NewtonDriver) — Newton-Raphson solver for the solution of non-linear equations.

Synopsis

NewtonDriver(method,newton_tolerance,newton_max_iterations)

Details

  • Base class: Driver
  • Parameters:

    method
    The linear solver used at each step of the Newton-Raphson procedure. Type: An object of the LinearSolver class.
    newton_tolerance
    Convergence criterion. Type: A real number.
    newton_max_iterations
    Maximum number of Newton steps. Type: Integer.

Description

NewtonDriver is a Driver object, used as the solver argument to the OOF.Solver command. It uses the Newton-Raphson method, applying the given linear method repeatedly to find a solution of the non-linear active Equations that are defined on the Mesh.

The Newton-Raphson method solves the equation \(A(x)x=b\) by defining \(f(x)=Ax-b\). Starting at a point \(x_0\), it computes an increment \(\delta x\) by solving the linear system


\[ A(x_0)\delta x = b - A(x_0)x_0 \]
      (6.14)

Then a new approximation \(x_1\) is given by

\[x_1=x_0+\delta x\] (6.15)

and the procedure repeats itself.

The best method depends on the problem being solved. Some solvers, such as conjugate gradient, only work on symmetric matrices. OOF2 notices when a problem is asymmetric and won't allow the wrong kind of solver to be applied.

The Newton-Raphson iteration halts when the normalized residual is less than the given newton_tolerance. The normalized residual at \(x=x_n\) is \( |Ax_n-b|/|b| \). A smaller tolerance requires more iterations but gives a more precise result.

newton_max_iterations is the maximum number of Newton-Raphson iterations that will be taken, whether or not the tolerance is satisfied.


/* OOF home */ /* OOF2 home */ /* Send mail to the OOF Team */