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

Detailed Description

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

ODEs using this interface also provide a Jacobian in addition to the functionality of the Picard-related interface.

Definition at line 96 of file ODESystem.h.

#include <ODESystem.h>

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

Public Member Functions

void preAssemble (const double t, double const dt, GlobalVector const &x) override=0
 Calls process' pre-assembly with the provided state (t, dt, x).
 
virtual void assembleWithJacobian (const double t, double const dt, std::vector< GlobalVector * > const &x, std::vector< GlobalVector * > const &x_prev, int const process_id, GlobalVector &b, GlobalMatrix &Jac)=0
 
- Public Member Functions inherited from NumLib::ODESystem< ODESystemTag::FirstOrderImplicitQuasilinear, NonlinearSolverTag::Picard >
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
 

Additional Inherited Members

- Public Types inherited from NumLib::ODESystem< ODESystemTag::FirstOrderImplicitQuasilinear, NonlinearSolverTag::Picard >
using Index = MathLib::MatrixVectorTraits<GlobalMatrix>::Index
 
- Static Public Attributes inherited from NumLib::ODESystem< ODESystemTag::FirstOrderImplicitQuasilinear, NonlinearSolverTag::Picard >
static const ODESystemTag ODETag
 A tag indicating the type of ODE.
 

Member Function Documentation

◆ assembleWithJacobian()

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

Assemble b and the Jacobian \( \mathtt{Jac} := \partial r/\partial x_N \) at the provided state (t, x).

For the meaning of the other parameters refer to the the introductory remarks on time discretization.

◆ preAssemble()

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

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

Implements NumLib::ODESystem< ODESystemTag::FirstOrderImplicitQuasilinear, NonlinearSolverTag::Picard >.


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