OGS 6.2.1-499-g3b941532c.dirty.20191012113459
NumLib::NonlinearSystem< NonlinearSolverTag::Newton > Class Template Referenceabstract

Detailed Description

template<>
class NumLib::NonlinearSystem< NonlinearSolverTag::Newton >

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, int const process_id)=0
 
virtual void getResidual (GlobalVector const &x, 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,
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 &  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: