OGS
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
 

Member Function Documentation

◆ 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: