OGS
NumLib::ODESystem< ODESystemTag::FirstOrderImplicitQuasilinear, NonlinearSolverTag::Picard > Class Referenceabstract

Detailed Description

Interface for a first-order implicit quasi-linear ODE.

See also
ODESystemTag::FirstOrderImplicitQuasilinear

Definition at line 39 of file ODESystem.h.

#include <ODESystem.h>

Inheritance diagram for NumLib::ODESystem< ODESystemTag::FirstOrderImplicitQuasilinear, NonlinearSolverTag::Picard >:
[legend]
Collaboration diagram for NumLib::ODESystem< ODESystemTag::FirstOrderImplicitQuasilinear, NonlinearSolverTag::Picard >:
[legend]

Public Types

using Index = MathLib::MatrixVectorTraits<GlobalMatrix>::Index
 

Public Member Functions

virtual void preAssemble (const double t, double const dt, GlobalVector const &x)=0
 Calls process' pre-assembly with the provided state (t, dt, x).
 
virtual std::vector< GlobalIndexTypegetIndicesOfResiduumWithoutInitialCompensation () const
 
virtual void assemble (const double t, double const dt, std::vector< GlobalVector * > const &x, std::vector< GlobalVector * > const &x_prev, int const process_id, GlobalMatrix &M, GlobalMatrix &K, GlobalVector &b)=0
 Assemble M, K and b at the provided state (t, x).
 
virtual std::vector< NumLib::IndexValueVector< Index > > const * getKnownSolutions (double const, GlobalVector const &, int const) const
 
virtual void updateConstraints (GlobalVector &, GlobalVector &, int const)
 
virtual bool shouldLinearSolverComputeOnlyUponTimestepChange () const
 
- 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
 

Static Public Attributes

static const ODESystemTag ODETag
 A tag indicating the type of ODE.
 

Member Typedef Documentation

◆ Index

Member Function Documentation

◆ assemble()

virtual void NumLib::ODESystem< ODESystemTag::FirstOrderImplicitQuasilinear, NonlinearSolverTag::Picard >::assemble ( const double t,
double const dt,
std::vector< GlobalVector * > const & x,
std::vector< GlobalVector * > const & x_prev,
int const process_id,
GlobalMatrix & M,
GlobalMatrix & K,
GlobalVector & b )
pure virtual

Assemble M, K and b at the provided state (t, x).

◆ getIndicesOfResiduumWithoutInitialCompensation()

virtual std::vector< GlobalIndexType > NumLib::ODESystem< ODESystemTag::FirstOrderImplicitQuasilinear, NonlinearSolverTag::Picard >::getIndicesOfResiduumWithoutInitialCompensation ( ) const
inlinevirtual
Returns
The global indices for the entries of the global residuum vector that do not need initial non-equilibrium compensation.

Definition at line 54 of file ODESystem.h.

55 {
56 return {};
57 }

◆ getKnownSolutions()

virtual std::vector< NumLib::IndexValueVector< Index > > const * NumLib::ODESystem< ODESystemTag::FirstOrderImplicitQuasilinear, NonlinearSolverTag::Picard >::getKnownSolutions ( double const ,
GlobalVector const & ,
int const  ) const
inlinevirtual

Provides known solutions (Dirichlet boundary conditions) vector for the ode system at the given time t and process_id.

Definition at line 71 of file ODESystem.h.

73 {
74 return nullptr; // by default there are no known solutions
75 }

◆ preAssemble()

virtual void NumLib::ODESystem< ODESystemTag::FirstOrderImplicitQuasilinear, NonlinearSolverTag::Picard >::preAssemble ( const double t,
double const dt,
GlobalVector const & x )
pure virtual

Calls process' pre-assembly with the provided state (t, dt, x).

Implemented in NumLib::ODESystem< ODESystemTag::FirstOrderImplicitQuasilinear, NonlinearSolverTag::Newton >.

◆ shouldLinearSolverComputeOnlyUponTimestepChange()

virtual bool NumLib::ODESystem< ODESystemTag::FirstOrderImplicitQuasilinear, NonlinearSolverTag::Picard >::shouldLinearSolverComputeOnlyUponTimestepChange ( ) const
inlinevirtual

Indicates whether the assembled matrices change only upon timestep change. This enables some optimizations in the linear solver, but the user must be 100 % sure that she uses this option correctly.

Definition at line 84 of file ODESystem.h.

85 {
86 return false;
87 }

◆ updateConstraints()

virtual void NumLib::ODESystem< ODESystemTag::FirstOrderImplicitQuasilinear, NonlinearSolverTag::Picard >::updateConstraints ( GlobalVector & ,
GlobalVector & ,
int const  )
inlinevirtual

Definition at line 77 of file ODESystem.h.

79 {};

Member Data Documentation

◆ ODETag

Initial value:

A tag indicating the type of ODE.

Definition at line 44 of file ODESystem.h.


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