ryujin 2.1.1 revision 5a1111835e8617c1fa5372346ab85a0bd39a2720
Public Types | Public Member Functions | 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

using HyperbolicSystem = typename Description::HyperbolicSystem
 
using ParabolicSystem = typename Description::ParabolicSystem
 
using ParabolicSolver = typename Description::template ParabolicSolver< dim, Number >
 
using View = typename Description::template HyperbolicSystemView< dim, Number >
 
using vector_type = typename View::vector_type
 

Public Member Functions

 ParabolicModule (const MPI_Comm &mpi_communicator, 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 step (const vector_type &old_U, const Number old_t, std::array< std::reference_wrapper< const vector_type >, stages > stage_U, const std::array< Number, stages > stage_weights, vector_type &new_U, Number tau) const
 
void print_solver_statistics (std::ostream &output) const
 

Accessors

IDViolationStrategy id_violation_strategy_
 
auto & n_restarts () 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 34 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 40 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 45 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>

The ParabolicSolver

Definition at line 50 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 56 of file parabolic_module.h.

◆ vector_type

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

MulticomponentVector for storing a vector of conserved states:

Definition at line 62 of file parabolic_module.h.

Constructor & Destructor Documentation

◆ ParabolicModule()

template<typename Description , int dim, typename Number >
ryujin::ParabolicModule< Description, dim, Number >::ParabolicModule ( const MPI_Comm &  mpi_communicator,
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 39 of file parabolic_module.template.h.

References ryujin::ScalarConservation::ParabolicSystem::is_identity.

◆ step()

template<typename Description , int dim, typename Number >
template<int stages>
void ryujin::ParabolicModule< Description, dim, Number >::step ( const vector_type old_U,
const Number  old_t,
std::array< std::reference_wrapper< const vector_type >, stages >  stage_U,
const std::array< Number, stages >  stage_weights,
vector_type new_U,
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 54 of file parabolic_module.template.h.

References ryujin::ScalarConservation::ParabolicSystem::is_identity.

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

References ryujin::ScalarConservation::ParabolicSystem::is_identity.

◆ n_restarts()

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

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

Definition at line 121 of file parabolic_module.h.

◆ n_warnings()

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

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

Definition at line 127 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 130 of file parabolic_module.h.


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