ryujin 2.5.0 revision 3a6c8d57210175dea14d8116e1fe878f349f8c1c
Loading...
Searching...
No Matches
List of all members
ryujin::Interface::ParabolicModule< dim, Number > Class Template Referenceabstract

#include <include/ryujin/interface/parabolic_module.h>

Inheritance diagram for ryujin::Interface::ParabolicModule< dim, Number >:
Inheritance graph
[legend]
Collaboration diagram for ryujin::Interface::ParabolicModule< dim, Number >:
Collaboration graph
[legend]

Public Member Functions

Functions for performing implicit time steps
virtual void backward_euler_step (const StateVector< Number > &old_state_vector, const Number old_t, StageVectors stage_state_vectors, StageWeights stage_weights, StateVector< Number > &new_state_vector, Number tau) const =0
 
virtual void crank_nicolson_step (const StateVector< Number > &old_state_vector, const Number old_t, StateVector< Number > &new_state_vector, Number tau) const =0
 

Detailed Description

template<int dim, typename Number = double>
class ryujin::Interface::ParabolicModule< dim, Number >

The description-free interface of a ParabolicModule: implicit time stepping for a parabolic system.

The interface holds the common state of Interface::Module.

Definition at line 27 of file parabolic_module.h.

Member Function Documentation

◆ backward_euler_step()

template<int dim, typename Number = double>
virtual void ryujin::Interface::ParabolicModule< dim, Number >::backward_euler_step ( const StateVector< Number > &  old_state_vector,
const Number  old_t,
StageVectors  stage_state_vectors,
StageWeights  stage_weights,
StateVector< Number > &  new_state_vector,
Number  tau 
) const
pure virtual

Given a reference to a previous state vector old_state_vector at time old_t and a time-step size tau perform an implicit backward Euler step (and store the result in new_state_vector).

The stage state vectors stage_state_vectors together with the weights stage_weights are used to construct a modified high order right-hand side / flux.

Todo:
This function should always operate on the selected memory space.

Implemented in ryujin::EulerPoisson::ParabolicModule< HyperbolicDescription, dim, Number >, ryujin::NavierStokes::ParabolicModule< dim, Number >, and ryujin::StubParabolicModule< HyperbolicDescription, dim, Number >.

◆ crank_nicolson_step()

template<int dim, typename Number = double>
virtual void ryujin::Interface::ParabolicModule< dim, Number >::crank_nicolson_step ( const StateVector< Number > &  old_state_vector,
const Number  old_t,
StateVector< Number > &  new_state_vector,
Number  tau 
) const
pure virtual

Given a reference to a previous state vector old_state_vector at time old_t and a time-step size tau perform an implicit Crank-Nicolson step (and store the result in new_state_vector).

This variant is used in the TimeIntegrator class for the Strang split variants.

Todo:
This function should always operate on the selected memory space.

Implemented in ryujin::EulerPoisson::ParabolicModule< HyperbolicDescription, dim, Number >, ryujin::NavierStokes::ParabolicModule< dim, Number >, and ryujin::StubParabolicModule< HyperbolicDescription, dim, Number >.


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