![]() |
ryujin 2.5.0 revision 3a6c8d57210175dea14d8116e1fe878f349f8c1c
|

Enumerations | |
| enum | ryujin::Boundary : dealii::types::boundary_id { ryujin::do_nothing = 0 , ryujin::periodic = 1 , ryujin::slip = 2 , ryujin::no_slip = 3 , ryujin::dirichlet = 4 , ryujin::dynamic = 5 , ryujin::dirichlet_momentum = 6 , ryujin::dirichlet_velocity = 7 } |
| enum class | ryujin::Ansatz { ryujin::Ansatz::cg_q1 , ryujin::Ansatz::cg_q2 , ryujin::Ansatz::cg_q3 , ryujin::Ansatz::dg_q1 , ryujin::Ansatz::dg_q2 , ryujin::Ansatz::dg_q3 } |
| enum class | ryujin::IDViolationStrategy : std::uint8_t { ryujin::IDViolationStrategy::warn , ryujin::IDViolationStrategy::raise_exception } |
Abstract base classes in namespace ryujin::Interface that hide the equation dependent types from the driver and the discretization (include/ryujin/interface).
| enum ryujin::Boundary : dealii::types::boundary_id |
An enum of type dealii::types::boundary_id that provides an mnemonic for prescribing different boundary conditions on faces.
| Enumerator | |
|---|---|
| do_nothing | The "do nothing" outflow boundary condition: no special treatment of the boundary degree of freedom. For stability reasons it is important to ensure that this boundary id is only prescribed on degrees of freedom with a velocity vector pointing outward of the computational domain and coming from the interior of the domain. |
| periodic | Prescribe periodic boundary conditions by identifying opposing degrees of freedom. This currently requires a mesh with "standard orientation". |
| slip | On (free) slip boundary degrees of freedom we enforce a vanishing normal component of the momentum in the Euler module. This is done by explicitly removing the normal component of the momentum for the degree of freedom at the end of TimeStep::euler_step(). In the dissipation module \(v\cdot n\) is enforced strongly which leads to a natural boundary condition on the symmetric stress tensor: \(\tau\cdot\mathbb{S}(v)\cdot\vec n\). |
| no_slip | On no-slip boundary degrees of freedom we enforce a vanishing normal component of the momentum in the Euler module. This is done by explicitly removing the normal component of the momentum for the degree of freedom at the end of TimeStep::euler_step(). In the dissipation module a vanishing velocity \(v=0\) is enforced strongly. |
| dirichlet | On degrees of freedom marked as Dirichlet boundary we reset the state of the degree of freedom to the value of InitialData::initial_state(). Such Dirichlet conditions can only be meaningfully enforced as inflow conditions, i.e., the velocity vector associated with a Dirichlet boundary degree of freedom has to point into the computational domain, and no "backward traveling" shock front or other flow feature must reach a Dirichlet boundary degree of freedom during the computation. |
| dynamic | On degrees of freedom marked as a "dynamic" boundary we distinguish four cases (for the compressible Euler equations or related PDEs):
|
| dirichlet_momentum | For the Euler and shallow Water equations: On degrees of freedom marked as "dirichlet momentum" boundary, we reset only the momentum of the degree of freedom to the value of InitialData::initial_state(). Where appropriate, we keep water height h, density rho, and internal energy e of the boundary state. Such conditions are used, for example, in many steady state problems for the shallow water equations with inflow conditions. |
| dirichlet_velocity | For the Euler and shallow Water equations: On degrees of freedom marked as "dirichlet velocity" boundary, we reset only the velocity of the degree of freedom to the value of InitialData::initial_state(). Where appropriate, we keep water height h, density rho, and internal energy e of the boundary state. |
Definition at line 55 of file discretization.h.
|
strong |
An enum class for setting the finite element ansatz.
Definition at line 149 of file discretization.h.
|
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.
| 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. |