OOF2: The Manual

Name

Newton (Newton) — Solve nonlinear equations with Newton's method.

Synopsis

Newton(relative_tolerance, absolute_tolerance, maximum_iterations)

Details

  • Base class: NonlinearSolverBase
  • Parameters:

    relative_tolerance
    Relative tolerance for convergence to a nonlinear solution. Type: A real number.
    absolute_tolerance
    Absolute tolerance for convergence to a nonlinear solution. Type: A real number.
    maximum_iterations
    Maximum number of iterations for convergence to a nonlinear solution. Type: Integer.

Description

Newton is a nonlinear solver used in AdvancedSolverMode for solving nonlinear equations of the form

A⁢(ϕ)=0
(6.150)

It implements Newton's method, which uses the derivative of the nonlinear term A with respect to the vector of unknowns, ϕ (i.e, Field values), to compute successive approximations to the solution. The iteration stops when the norm of the residual after the nth step, |An| , satisfies

|An|⁢<ϵ|⁢A0|+δ
(6.151)

where ϵ =relative_tolerance and δ =absolute_tolerance, or when the maximum_iterations limit is exceeded.

Newton's method generally converges in fewer iterations than Picard, but may require more work per iteration.

Newton's method relies upon knowing the Jacobian, which is the derivatives of the nonlinear function with respect to the unknowns, ∂Ai⁢(ϕ)/∂ϕj . This information comes from the Material Properties, which determine the exact form of the equations being solved. EqnProperties must define EqnProperty::force_deriv_matrix() to compute this quantity. FluxProperties must define FluxProperty::flux_matrix.

See Also