ryujin 2.1.1 revision b04fb4aba7bd97ddfa5994a6b4b6e8586eb15db2
Loading...
Searching...
No Matches
List of all members
ryujin::EulerInitialStates::ExactRiemannSolution< Description, dim, Number > Class Template Reference

#include <source/euler/initial_state_exact_riemann_solution.h>

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

Typedefs and constexpr constants

using HyperbolicSystem = typename Description::HyperbolicSystem
 
using View = typename HyperbolicSystem::template View< dim, Number >
 
using state_type = typename View::state_type
 
using ScalarNumber = typename View::ScalarNumber
 
using RiemannSolver = EulerAEOS::NASGRiemannSolver< ScalarNumber, riemann_solver_options >
 
using RiemannSolverView = EulerAEOS::NASGRiemannSolverView< Number, riemann_solver_options >
 
using primitive_type = typename RiemannSolverView::primitive_type
 
static constexpr EulerAEOS::NASGRiemannSolverOptions riemann_solver_options
 
 ExactRiemannSolution (const HyperbolicSystem &hyperbolic_system, const std::string subsection)
 
state_type compute (const dealii::Point< dim > &point, Number t) final
 

Additional Inherited Members

- Public Types inherited from ryujin::InitialState< Description, dim, Number >
using HyperbolicSystem = typename HyperbolicDescription::HyperbolicSystem
 
using View = typename HyperbolicSystem::template View< dim, Number >
 
using state_type = typename View::state_type
 
using initial_precomputed_type = typename View::initial_precomputed_type
 
- Public Member Functions inherited from ryujin::InitialState< Description, dim, Number >
 InitialState (const std::string &name, const std::string &subsection)
 
virtual initial_precomputed_type initial_precomputations (const dealii::Point< dim > &)
 
const auto & name () const
 

Detailed Description

template<typename Description, int dim, typename Number>
class ryujin::EulerInitialStates::ExactRiemannSolution< Description, dim, Number >

The exact Riemann solution.

This initial state class computes the analytic (self-similar) solution of the 1D Riemann problem for the compressible Euler equations with a Noble-Abel-Stiffened Gas equation of state with the help of EulerAEOS::NASGRiemannSolver, see [2] and [16]. The covolume b and reference pressure pinf are taken from the equation of state of the hyperbolic system (if available), otherwise a polytropic gas equation of state is assumed.

Note
This class returns the analytic solution as a function of time t and position x.
If the hyperbolic system does not provide gamma (for example, EulerAEOS), the "gamma" parameter of this class must coincide with the gamma of the equation of state. Similarly, the equation of state should be a Noble-Abel-Stiffened Gas EOS. Neither condition is checked: with a mismatched gamma or a different equation of state, the returned solution will not be an exact solution of the hyperbolic system.

Definition at line 47 of file initial_state_exact_riemann_solution.h.

Member Typedef Documentation

◆ HyperbolicSystem

template<typename Description , int dim, typename Number >
using ryujin::EulerInitialStates::ExactRiemannSolution< Description, dim, Number >::HyperbolicSystem = typename Description::HyperbolicSystem

Definition at line 55 of file initial_state_exact_riemann_solution.h.

◆ View

template<typename Description , int dim, typename Number >
using ryujin::EulerInitialStates::ExactRiemannSolution< Description, dim, Number >::View = typename HyperbolicSystem::template View<dim, Number>

Definition at line 56 of file initial_state_exact_riemann_solution.h.

◆ state_type

template<typename Description , int dim, typename Number >
using ryujin::EulerInitialStates::ExactRiemannSolution< Description, dim, Number >::state_type = typename View::state_type

Definition at line 57 of file initial_state_exact_riemann_solution.h.

◆ ScalarNumber

template<typename Description , int dim, typename Number >
using ryujin::EulerInitialStates::ExactRiemannSolution< Description, dim, Number >::ScalarNumber = typename View::ScalarNumber

Definition at line 59 of file initial_state_exact_riemann_solution.h.

◆ RiemannSolver

template<typename Description , int dim, typename Number >
using ryujin::EulerInitialStates::ExactRiemannSolution< Description, dim, Number >::RiemannSolver = EulerAEOS::NASGRiemannSolver<ScalarNumber, riemann_solver_options>

Definition at line 73 of file initial_state_exact_riemann_solution.h.

◆ RiemannSolverView

template<typename Description , int dim, typename Number >
using ryujin::EulerInitialStates::ExactRiemannSolution< Description, dim, Number >::RiemannSolverView = EulerAEOS::NASGRiemannSolverView<Number, riemann_solver_options>

Definition at line 75 of file initial_state_exact_riemann_solution.h.

◆ primitive_type

template<typename Description , int dim, typename Number >
using ryujin::EulerInitialStates::ExactRiemannSolution< Description, dim, Number >::primitive_type = typename RiemannSolverView::primitive_type

Definition at line 77 of file initial_state_exact_riemann_solution.h.

Constructor & Destructor Documentation

◆ ExactRiemannSolution()

template<typename Description , int dim, typename Number >
ryujin::EulerInitialStates::ExactRiemannSolution< Description, dim, Number >::ExactRiemannSolution ( const HyperbolicSystem &  hyperbolic_system,
const std::string  subsection 
)
inline

Member Function Documentation

◆ compute()

template<typename Description , int dim, typename Number >
state_type ryujin::EulerInitialStates::ExactRiemannSolution< Description, dim, Number >::compute ( const dealii::Point< dim > &  point,
Number  t 
)
inlinefinalvirtual

Given a position point returns the corresponding (conserved) initial state. The function is used to interpolate initial values and enforce Dirichlet boundary conditions. For the latter, the function signature has an additional parameter t denoting the current time to allow for time-dependent (in-flow) Dirichlet data.

Implements ryujin::InitialState< Description, dim, Number >.

Definition at line 140 of file initial_state_exact_riemann_solution.h.

Member Data Documentation

◆ riemann_solver_options

template<typename Description , int dim, typename Number >
constexpr EulerAEOS::NASGRiemannSolverOptions ryujin::EulerInitialStates::ExactRiemannSolution< Description, dim, Number >::riemann_solver_options
staticconstexpr
Initial value:
{.covolume = View::have_covolume_constant,
.pinf = View::have_covolume_constant,
.safe_division = true,
.variable_gamma = false}

Compile time options of the Riemann solver: a single, constant gamma, and covolume and reference pressure only if provided by the hyperbolic system. safe_division is enabled so that the solution remains well defined if a vacuum is formed.

Definition at line 68 of file initial_state_exact_riemann_solution.h.


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