ryujin 2.1.1 revision 0348cbb53a3e4b1da2a4c037e81f88f2d21ce219
Classes | Enumerations
Hyperbolic Module

Classes

class  ryujin::HyperbolicModule< Description, dim, Number >
 

Enumerations

enum class  ryujin::IDViolationStrategy : std::uint8_t { ryujin::IDViolationStrategy::warn , ryujin::IDViolationStrategy::raise_exception }
 

Detailed Description

This module contains classes and functions used during different stages of the explicit hyperbolic update performed in HyperbolicModule::step().

Enumeration Type Documentation

◆ IDViolationStrategy

enum class ryujin::IDViolationStrategy : std::uint8_t
strong

An enum controlling the behavior on detection of an invariant domain or CFL violation. Such a case might occur for either aggressive CFL numbers > 1, and/or later stages in the Runge Kutta scheme when the time step tau is prescribed.

The invariant domain violation is detected in the limiter and typically implies that the low-order update is already out of bounds.

Note
Data structures in HyperbolicModule are initialized with the ensemble subrange communicator stored in MPIEnsemble. However, the time step size constraint (i.e. tau_max) is synchronized over the entire global communicator.
Enumerator
warn 

Warn about an invariant domain violation but take no further action.

raise_exception 

Raise a Restart exception on domain violation. This exception can be caught in TimeIntegrator and various different actions (adapt CFL and retry) can be taken depending on chosen strategy.

Definition at line 43 of file hyperbolic_module.h.