ryujin 2.1.1 revision 6dc06e5864abd5d99e5d7ab641dbe621936411d9
List of all members
ryujin::ParabolicModule< Description, dim, Number > Class Template Referencefinal

#include <source/parabolic_module.h>

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

Public Types

Typedefs and constexpr constants
using HyperbolicSystem = typename Description::HyperbolicSystem
 
using View = typename Description::template HyperbolicSystemView< dim, Number >
 
using ParabolicSystem = typename Description::ParabolicSystem
 
using ParabolicSolver = typename Description::template ParabolicSolver< dim, Number >
 
using StateVector = typename View::StateVector
 

Public Member Functions

Constructor and setup
 ParabolicModule (const MPIEnsemble &mpi_ensemble, std::map< std::string, dealii::Timer > &computing_timer, const OfflineData< dim, Number > &offline_data, const HyperbolicSystem &hyperbolic_system, const ParabolicSystem &parabolic_system, const InitialValues< Description, dim, Number > &initial_values, const std::string &subsection="/ParabolicModule")
 
void prepare ()
 
Functons for performing explicit time steps
template<int stages>
void backward_euler_step (const StateVector &old_state_vector, const Number old_t, std::array< std::reference_wrapper< const StateVector >, stages > stage_state_vectors, const std::array< Number, stages > stage_weights, StateVector &new_state_vector, Number tau) const
 
void crank_nicolson_step (const StateVector &old_state_vector, const Number old_t, StateVector &new_state_vector, Number tau) const
 
void print_solver_statistics (std::ostream &output) const
 

Accessors

IDViolationStrategy id_violation_strategy_
 
const auto & n_restarts () const
 
const auto & n_corrections () const
 
const auto & n_warnings () const
 

Detailed Description

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

Implicit backward Euler time-stepping and Crank-Nicolson time-stepping for the parabolic subsystem.

Definition at line 33 of file parabolic_module.h.

Member Typedef Documentation

◆ HyperbolicSystem

template<typename Description , int dim, typename Number = double>
using ryujin::ParabolicModule< Description, dim, Number >::HyperbolicSystem = typename Description::HyperbolicSystem

Definition at line 41 of file parabolic_module.h.

◆ View

template<typename Description , int dim, typename Number = double>
using ryujin::ParabolicModule< Description, dim, Number >::View = typename Description::template HyperbolicSystemView<dim, Number>

Definition at line 43 of file parabolic_module.h.

◆ ParabolicSystem

template<typename Description , int dim, typename Number = double>
using ryujin::ParabolicModule< Description, dim, Number >::ParabolicSystem = typename Description::ParabolicSystem

Definition at line 46 of file parabolic_module.h.

◆ ParabolicSolver

template<typename Description , int dim, typename Number = double>
using ryujin::ParabolicModule< Description, dim, Number >::ParabolicSolver = typename Description::template ParabolicSolver<dim, Number>

Definition at line 48 of file parabolic_module.h.

◆ StateVector

template<typename Description , int dim, typename Number = double>
using ryujin::ParabolicModule< Description, dim, Number >::StateVector = typename View::StateVector

Definition at line 51 of file parabolic_module.h.

Constructor & Destructor Documentation

◆ ParabolicModule()

template<typename Description , int dim, typename Number >
ryujin::ParabolicModule< Description, dim, Number >::ParabolicModule ( const MPIEnsemble mpi_ensemble,
std::map< std::string, dealii::Timer > &  computing_timer,
const OfflineData< dim, Number > &  offline_data,
const HyperbolicSystem hyperbolic_system,
const ParabolicSystem parabolic_system,
const InitialValues< Description, dim, Number > &  initial_values,
const std::string &  subsection = "/ParabolicModule< Description, dim, Number >" 
)

Constructor.

Definition at line 15 of file parabolic_module.template.h.

References ryujin::warn.

Member Function Documentation

◆ prepare()

template<typename Description , int dim, typename Number >
void ryujin::ParabolicModule< Description, dim, Number >::prepare

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 40 of file parabolic_module.template.h.

◆ backward_euler_step()

template<typename Description , int dim, typename Number >
template<int stages>
void ryujin::ParabolicModule< Description, dim, Number >::backward_euler_step ( const StateVector old_state_vector,
const Number  old_t,
std::array< std::reference_wrapper< const StateVector >, stages >  stage_state_vectors,
const std::array< Number, stages >  stage_weights,
StateVector new_state_vector,
Number  tau 
) const

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

The function takes an optional array of states stage_U together with a an array of weights stage_weights to construct a modified high-order right-hand side / flux.

Definition at line 55 of file parabolic_module.template.h.

◆ crank_nicolson_step()

template<typename Description , int dim, typename Number >
void ryujin::ParabolicModule< Description, dim, Number >::crank_nicolson_step ( const StateVector old_state_vector,
const Number  old_t,
StateVector new_state_vector,
Number  tau 
) const

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

Definition at line 94 of file parabolic_module.template.h.

◆ print_solver_statistics()

template<typename Description , int dim, typename Number >
void ryujin::ParabolicModule< Description, dim, Number >::print_solver_statistics ( std::ostream &  output) const

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

Definition at line 126 of file parabolic_module.template.h.

◆ n_restarts()

template<typename Description , int dim, typename Number = double>
const auto & ryujin::ParabolicModule< Description, dim, Number >::n_restarts ( ) const
inline

The number of restarts signalled by the step() function.

Definition at line 131 of file parabolic_module.h.

◆ n_corrections()

template<typename Description , int dim, typename Number = double>
const auto & ryujin::ParabolicModule< Description, dim, Number >::n_corrections ( ) const
inline

The number of corrections performed by the step() function. This function exists to mirror the ParabolicModule interface and will always return 0.

Definition at line 139 of file parabolic_module.h.

◆ n_warnings()

template<typename Description , int dim, typename Number = double>
const auto & ryujin::ParabolicModule< Description, dim, Number >::n_warnings ( ) const
inline

The number of ID violation warnings encounterd in the step() function.

Definition at line 145 of file parabolic_module.h.

Member Data Documentation

◆ id_violation_strategy_

template<typename Description , int dim, typename Number = double>
IDViolationStrategy ryujin::ParabolicModule< Description, dim, Number >::id_violation_strategy_
mutable

Definition at line 148 of file parabolic_module.h.


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