ryujin 2.1.1 revision 0eab90fbc6e1ac9f2e0a2e6d16f9f023c13a02f7
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 implies that the low-order update itself lies outside the invariant domain.

A "CFL violation" occurs if the computed tau_max of a substep is significantly larger than the previously computed time step size tau with which we perform the update.

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 47 of file hyperbolic_module.h.