 OGS  master
NumLib::NonlinearSystem< NonlinearSolverTag::Picard > Class Referenceabstract

## Detailed Description

A System of nonlinear equations to be solved with the Picard fixpoint iteration method.

The Picard method will iterate the linearized equation $$\mathtt{A} \cdot x_i = \mathtt{rhs}$$.

Definition at line 87 of file NonlinearSystem.h.

#include <NonlinearSystem.h>

Inheritance diagram for NumLib::NonlinearSystem< NonlinearSolverTag::Picard >:
[legend]
Collaboration diagram for NumLib::NonlinearSystem< NonlinearSolverTag::Picard >:
[legend]

## Public Member Functions

virtual void assemble (std::vector< GlobalVector * > const &x, std::vector< GlobalVector * > const &x_prev, int const process_id)=0

virtual void getA (GlobalMatrix &A) const =0

virtual void getRhs (GlobalVector const &x_prev, GlobalVector &rhs) 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 applyKnownSolutionsPicard (GlobalMatrix &A, GlobalVector &rhs, GlobalVector &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)

virtual MathLib::MatrixSpecifications getMatrixSpecifications (const int process_id) const =0

virtual ~EquationSystem ()=default

## ◆ applyKnownSolutions()

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

Apply known solutions to the solution vector x.

Precondition
computeKnownSolutions() must have been called before.

## ◆ applyKnownSolutionsPicard()

 virtual void NumLib::NonlinearSystem< NonlinearSolverTag::Picard >::applyKnownSolutionsPicard ( GlobalMatrix & A, GlobalVector & rhs, GlobalVector & x ) const
pure virtual

Apply known solutions to the linearized equation system $$A \cdot x = \mathit{rhs}$$.

Precondition
computeKnownSolutions() must have been called before.

## ◆ assemble()

 virtual void NumLib::NonlinearSystem< NonlinearSolverTag::Picard >::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 $$J(x) \cdot \Delta x = (x)$$. Here the residual vector $$r(x)$$ and its Jacobian $$J(x)$$ are assembled.

## ◆ computeKnownSolutions()

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

Pre-compute known solutions and possibly store them internally.

## ◆ getA()

 virtual void NumLib::NonlinearSystem< NonlinearSolverTag::Picard >::getA ( GlobalMatrix & A ) const
pure virtual

Writes the linearized equation system matrix to A.

Precondition
assemble() must have been called before.

## ◆ getRhs()

 virtual void NumLib::NonlinearSystem< NonlinearSolverTag::Picard >::getRhs ( GlobalVector const & x_prev, GlobalVector & rhs ) const
pure virtual

Writes the linearized equation system right-hand side to rhs.

Precondition
assemble() must have been called before.

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