OGS
NumLib::NonlinearSystem< NonlinearSolverTag::Newton > Class Referenceabstract

Detailed Description

A System of nonlinear equations to be solved with the Newton-Raphson method.

The Newton-Raphson method will iterate the linearized equation \( \mathtt{Jac} \cdot (-\Delta x_i) = \mathtt{res} \).

Definition at line 34 of file NonlinearSystem.h.

#include <NonlinearSystem.h>

Inheritance diagram for NumLib::NonlinearSystem< NonlinearSolverTag::Newton >:
Collaboration diagram for NumLib::NonlinearSystem< NonlinearSolverTag::Newton >:

Public Member Functions

virtual void assemble (std::vector< GlobalVector * > const &x, std::vector< GlobalVector * > const &x_prev, int const process_id)=0
 
virtual void getResidual (GlobalVector const &x, GlobalVector const &x_prev, GlobalVector &res) const =0
 
virtual void getJacobian (GlobalMatrix &Jac) const =0
 
virtual void computeKnownSolutions (GlobalVector const &x, int const process_id)=0
 Pre-compute known solutions and possibly store them internally. More...
 
virtual void applyKnownSolutions (GlobalVector &x) const =0
 
virtual void applyKnownSolutionsNewton (GlobalMatrix &Jac, GlobalVector &res, GlobalVector &minus_delta_x) const =0
 
- Public Member Functions inherited from NumLib::EquationSystem
virtual bool isLinear () const =0
 
virtual void preIteration (const unsigned iter, GlobalVector const &x)
 
virtual IterationResult postIteration (GlobalVector const &x)
 
- Public Member Functions inherited from NumLib::MatrixSpecificationsProvider
virtual MathLib::MatrixSpecifications getMatrixSpecifications (const int process_id) const =0
 
virtual ~MatrixSpecificationsProvider ()=default
 

Member Function Documentation

◆ applyKnownSolutions()

virtual void NumLib::NonlinearSystem< NonlinearSolverTag::Newton >::applyKnownSolutions ( GlobalVector &  x) const
pure virtual

Apply known solutions to the solution vector x.

Precondition
computeKnownSolutions() must have been called before.

◆ applyKnownSolutionsNewton()

virtual void NumLib::NonlinearSystem< NonlinearSolverTag::Newton >::applyKnownSolutionsNewton ( GlobalMatrix &  Jac,
GlobalVector &  res,
GlobalVector &  minus_delta_x 
) const
pure virtual

Apply known solutions to the linearized equation system \( \mathit{Jac} \cdot (-\Delta x) = \mathit{res} \).

Precondition
computeKnownSolutions() must have been called before.

◆ assemble()

virtual void NumLib::NonlinearSystem< NonlinearSolverTag::Newton >::assemble ( std::vector< GlobalVector * > const &  x,
std::vector< GlobalVector * > const &  x_prev,
int const  process_id 
)
pure virtual

Assembles the linearized equation system at the point x. The linearized system is \(A(x) \cdot x = b(x)\). Here the matrix \(A(x)\) and the vector \(b(x)\) are assembled.

◆ computeKnownSolutions()

virtual void NumLib::NonlinearSystem< NonlinearSolverTag::Newton >::computeKnownSolutions ( GlobalVector const &  x,
int const  process_id 
)
pure virtual

Pre-compute known solutions and possibly store them internally.

◆ getJacobian()

virtual void NumLib::NonlinearSystem< NonlinearSolverTag::Newton >::getJacobian ( GlobalMatrix &  Jac) const
pure virtual

Writes the Jacobian of the residual to Jac.

Precondition
assemble() must have been called before.

◆ getResidual()

virtual void NumLib::NonlinearSystem< NonlinearSolverTag::Newton >::getResidual ( GlobalVector const &  x,
GlobalVector const &  x_prev,
GlobalVector &  res 
) const
pure virtual

Writes the residual at point x to res.

Precondition
assemble() must have been called before with the same argument x.
Todo:
Remove argument x.

The documentation for this class was generated from the following file: