ryujin 2.5.0 revision c64172211cf21344cb9b9b0f3a1266aa6400d392
Loading...
Searching...
No Matches
List of all members
ryujin::StubParabolicModule< HyperbolicDescription, dim, Number > Class Template Referencefinal

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

Inheritance diagram for ryujin::StubParabolicModule< HyperbolicDescription, dim, Number >:
Inheritance graph
[legend]
Collaboration diagram for ryujin::StubParabolicModule< HyperbolicDescription, dim, Number >:
Collaboration graph
[legend]

Public Types

Typedefs and constexpr constants
using StageVectors = typename Interface::ParabolicModule< dim, Number >::StageVectors
 
using StageWeights = typename Interface::ParabolicModule< dim, Number >::StageWeights
 
using HyperbolicSystem = typename HyperbolicDescription::HyperbolicSystem
 
using ParabolicSystem = StubParabolicSystem
 
using View = typename HyperbolicSystem::template View< dim, Number >
 

Public Member Functions

Constructor and setup
 StubParabolicModule (const MPIEnsemble &, const OfflineData< dim, Number > &, const HyperbolicSystem &, const ParabolicSystem &, const InitialValues< HyperbolicDescription, dim, Number > &, const std::string &subsection="StubParabolicModule")
 
void prepare () override
 
Functions for performing explicit time steps
void reinit_state_vector (StateVector< Number > &) const override
 
void prepare_state_vector (StateVector< Number > &, Number) const override
 
Number backward_euler_step (const StateVector< Number > &old_state_vector, StageVectors, StageWeights, StateVector< Number > &new_state_vector, Number, Number tau, Number=std::numeric_limits< Number >::max()) const override
 
Number crank_nicolson_step (const StateVector< Number > &old_state_vector, StateVector< Number > &new_state_vector, Number, Number tau, Number=std::numeric_limits< Number >::max()) const override
 
Information and statistics
void print_solver_statistics (std::ostream &) const override
 
Functions for performing implicit time steps

Detailed Description

template<typename HyperbolicDescription, int dim, typename Number>
class ryujin::StubParabolicModule< HyperbolicDescription, dim, Number >

A stub parabolic solver that models the identity.

Definition at line 27 of file parabolic_module.h.

Member Typedef Documentation

◆ StageVectors

template<typename HyperbolicDescription , int dim, typename Number >
using ryujin::StubParabolicModule< HyperbolicDescription, dim, Number >::StageVectors = typename Interface::ParabolicModule<dim, Number>::StageVectors

Definition at line 36 of file parabolic_module.h.

◆ StageWeights

template<typename HyperbolicDescription , int dim, typename Number >
using ryujin::StubParabolicModule< HyperbolicDescription, dim, Number >::StageWeights = typename Interface::ParabolicModule<dim, Number>::StageWeights

Definition at line 39 of file parabolic_module.h.

◆ HyperbolicSystem

template<typename HyperbolicDescription , int dim, typename Number >
using ryujin::StubParabolicModule< HyperbolicDescription, dim, Number >::HyperbolicSystem = typename HyperbolicDescription::HyperbolicSystem

Definition at line 42 of file parabolic_module.h.

◆ ParabolicSystem

template<typename HyperbolicDescription , int dim, typename Number >
using ryujin::StubParabolicModule< HyperbolicDescription, dim, Number >::ParabolicSystem = StubParabolicSystem

Definition at line 43 of file parabolic_module.h.

◆ View

template<typename HyperbolicDescription , int dim, typename Number >
using ryujin::StubParabolicModule< HyperbolicDescription, dim, Number >::View = typename HyperbolicSystem::template View<dim, Number>

Definition at line 45 of file parabolic_module.h.

Constructor & Destructor Documentation

◆ StubParabolicModule()

template<typename HyperbolicDescription , int dim, typename Number >
ryujin::StubParabolicModule< HyperbolicDescription, dim, Number >::StubParabolicModule ( const MPIEnsemble &  ,
const OfflineData< dim, Number > &  ,
const HyperbolicSystem &  ,
const ParabolicSystem &  ,
const InitialValues< HyperbolicDescription, dim, Number > &  ,
const std::string &  subsection = "StubParabolicModule< HyperbolicDescription, dim, Number >" 
)
inline

Constructor.

Definition at line 56 of file parabolic_module.h.

Member Function Documentation

◆ prepare()

template<typename HyperbolicDescription , int dim, typename Number >
void ryujin::StubParabolicModule< HyperbolicDescription, dim, Number >::prepare ( )
inlineoverride

Prepare time stepping. A call to prepare() allocates temporary storage and is necessary before any of the following time-stepping functions can be called.

Definition at line 72 of file parabolic_module.h.

◆ reinit_state_vector()

template<typename HyperbolicDescription , int dim, typename Number >
void ryujin::StubParabolicModule< HyperbolicDescription, dim, Number >::reinit_state_vector ( StateVector< Number > &  ) const
inlineoverride

(Re)initialize the parabolic state vector component of the state vector.

Note
This routine does not modify the hyperbolic state vector or the precomputed vector component.

Definition at line 91 of file parabolic_module.h.

◆ prepare_state_vector()

template<typename HyperbolicDescription , int dim, typename Number >
void ryujin::StubParabolicModule< HyperbolicDescription, dim, Number >::prepare_state_vector ( StateVector< Number > &  ,
Number   
) const
inlineoverride

This function preprocesses a given state vector U in preparation for a high order IMEX time step. This function exists because some time stepping variants have to precompute quantities before we can perform an IMEX step. In addition, this function is called whenever we perform a mesh transfer or output operation.

Definition at line 103 of file parabolic_module.h.

◆ backward_euler_step()

template<typename HyperbolicDescription , int dim, typename Number >
Number ryujin::StubParabolicModule< HyperbolicDescription, dim, Number >::backward_euler_step ( const StateVector< Number > &  old_state_vector,
StageVectors  ,
StageWeights  ,
StateVector< Number > &  new_state_vector,
Number  ,
Number  tau,
Number  = std::numeric_limits<Number>::max() 
) const
inlineoverridevirtual

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).

Implements ryujin::Interface::ParabolicModule< dim, Number >.

Definition at line 116 of file parabolic_module.h.

◆ crank_nicolson_step()

template<typename HyperbolicDescription , int dim, typename Number >
Number ryujin::StubParabolicModule< HyperbolicDescription, dim, Number >::crank_nicolson_step ( const StateVector< Number > &  old_state_vector,
StateVector< Number > &  new_state_vector,
Number  ,
Number  tau,
Number  = std::numeric_limits<Number>::max() 
) const
inlineoverridevirtual

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

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

Implements ryujin::Interface::ParabolicModule< dim, Number >.

Definition at line 141 of file parabolic_module.h.

◆ print_solver_statistics()

template<typename HyperbolicDescription , int dim, typename Number >
void ryujin::StubParabolicModule< HyperbolicDescription, dim, Number >::print_solver_statistics ( std::ostream &  ) const
inlineoverride

Print a status line with solver statistics. This function is used for constructing the status message displayed periodically in the Scheduler.

Definition at line 167 of file parabolic_module.h.


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