ryujin 2.5.0 revision c64172211cf21344cb9b9b0f3a1266aa6400d392
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 Number backward_euler_step (const StateVector< Number > &old_state_vector, StageVectors stage_state_vectors, StageWeights stage_weights, StateVector< Number > &new_state_vector, Number t, Number tau, Number tau_max=std::numeric_limits< Number >::max()) const =0
 
virtual Number crank_nicolson_step (const StateVector< Number > &old_state_vector, StateVector< Number > &new_state_vector, Number t, Number tau, Number tau_max=std::numeric_limits< Number >::max()) 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 28 of file parabolic_module.h.

Member Function Documentation

◆ backward_euler_step()

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

Given a reference to a previous state vector old_state_vector at time 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.

The function returns the time step size tau. A parabolic module cannot choose the time step size: tau must be nonzero and tau_max is ignored.

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 Number ryujin::Interface::ParabolicModule< dim, Number >::crank_nicolson_step ( const StateVector< Number > &  old_state_vector,
StateVector< Number > &  new_state_vector,
Number  t,
Number  tau,
Number  tau_max = std::numeric_limits< Number >::max() 
) const
pure virtual

Given a reference to a previous state vector old_state_vector at time 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.

The function returns the time step size tau. A parabolic module cannot choose the time step size: tau must be nonzero and tau_max is ignored.

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: