![]() |
ryujin 2.1.1 revision ee5cbcbf2346c1299c942d0e1f13b46449973c18
|
#include <source/euler_barotropic/hyperbolic_system.h>
Public Member Functions | |
Constructor and setup | |
| HyperbolicSystemView (const HyperbolicSystem &hyperbolic_system) | |
Access to runtime parameters | |
| DEAL_II_ALWAYS_INLINE const std::string & | barotropic_equation_of_state () const |
| DEAL_II_ALWAYS_INLINE ScalarNumber | reference_density () const |
| DEAL_II_ALWAYS_INLINE ScalarNumber | vacuum_state_relaxation_small () const |
| DEAL_II_ALWAYS_INLINE ScalarNumber | vacuum_state_relaxation_large () const |
Low-level access to the selected equation of state | |
| DEAL_II_ALWAYS_INLINE Number | beos_specific_internal_energy (const Number &rho) const |
| DEAL_II_ALWAYS_INLINE Number | beos_pressure (const Number &rho) const |
| DEAL_II_ALWAYS_INLINE Number | beos_speed_of_sound (const Number &rho) const |
Special functions for boundary states | |
| template<int component> | |
| state_type | prescribe_riemann_characteristic (const state_type &U, const Number &p, const state_type &U_bar, const Number &p_bar, const dealii::Tensor< 1, dim, Number > &normal) const |
| template<typename Lambda > | |
| state_type | apply_boundary_conditions (const dealii::types::boundary_id id, const state_type &U, const dealii::Tensor< 1, dim, Number > &normal, const Lambda &get_dirichlet_data) const |
State transformations | |
| template<typename ST > | |
| state_type | expand_state (const ST &state) const |
| template<typename ST > | |
| state_type | from_initial_state (const ST &initial_state) const |
| state_type | from_primitive_state (const state_type &primitive_state) const |
| state_type | to_primitive_state (const state_type &state) const |
| template<typename Lambda > | |
| state_type | apply_galilei_transform (const state_type &state, const Lambda &lambda) const |
Static Public Attributes | |
Constexpr booleans used in the EulerInitialStates namespace | |
| static constexpr bool | have_gamma = false |
| static constexpr bool | have_covolume_constant = false |
| static constexpr bool | have_energy_equation = false |
Flux computations | |
| static constexpr bool | have_high_order_flux = false |
| flux_type | f (const state_type &U, const Number &p) const |
| flux_contribution_type | flux_contribution (const PrecomputedVectorView &pv, const InitialPrecomputedVectorView &piv, const unsigned int i, const state_type &U_i) const |
| flux_contribution_type | flux_contribution (const PrecomputedVectorView &pv, const InitialPrecomputedVectorView &piv, const unsigned int *js, const state_type &U_j) const |
| state_type | flux_divergence (const flux_contribution_type &flux_i, const flux_contribution_type &flux_j, const dealii::Tensor< 1, dim, Number > &c_ij) const |
| state_type | high_order_flux_divergence (const flux_contribution_type &flux_i, const flux_contribution_type &flux_j, const dealii::Tensor< 1, dim, Number > &c_ij) const =delete |
Computing stencil source terms | |
| static constexpr bool | have_source_terms = false |
| state_type | nodal_source (const PrecomputedVectorView &pv, const unsigned int i, const state_type &U_i, const ScalarNumber tau) const =delete |
| state_type | nodal_source (const PrecomputedVectorView &pv, const unsigned int *js, const state_type &U_j, const ScalarNumber tau) const =delete |
Computing derived physical quantities | |
| Number | filter_vacuum_density (const Number &rho) const |
| Number | total_energy (const state_type &U, const Number &specific_internal_energy) const |
| state_type | total_energy_derivative (const state_type &U, const Number &specific_internal_energy, const Number &pressure) const |
| bool | is_admissible (const state_type &U) const |
| static Number | density (const state_type &U) |
| static dealii::Tensor< 1, dim, Number > | momentum (const state_type &U) |
A view of the HyperbolicSystem that makes methods available for a given dimension dim and choice of number type Number (which can be a scalar float, or double, as well as a VectorizedArray holding packed scalars.
Intended usage:
Definition at line 165 of file hyperbolic_system.h.
| using ryujin::EulerBarotropic::HyperbolicSystemView< dim, Number >::ScalarNumber = typename get_value_type<Number>::type |
The underlying scalar number type.
Definition at line 176 of file hyperbolic_system.h.
| using ryujin::EulerBarotropic::HyperbolicSystemView< dim, Number >::state_type = dealii::Tensor<1, problem_dimension, Number> |
Storage type for a (conserved) state vector \(\boldsymbol U\).
Definition at line 186 of file hyperbolic_system.h.
| using ryujin::EulerBarotropic::HyperbolicSystemView< dim, Number >::flux_type = dealii::Tensor<1, problem_dimension, dealii::Tensor<1, dim, Number> > |
Storage type for the flux \(\mathbf{f}\).
Definition at line 191 of file hyperbolic_system.h.
| using ryujin::EulerBarotropic::HyperbolicSystemView< dim, Number >::flux_contribution_type = flux_type |
The storage type used for flux contributions.
Definition at line 197 of file hyperbolic_system.h.
| using ryujin::EulerBarotropic::HyperbolicSystemView< dim, Number >::precomputed_type = std::array<Number, n_precomputed_values> |
Array type used for precomputed values.
Definition at line 237 of file hyperbolic_system.h.
| using ryujin::EulerBarotropic::HyperbolicSystemView< dim, Number >::initial_precomputed_type = std::array<Number, n_initial_precomputed_values> |
Array type used for precomputed initial values.
Definition at line 253 of file hyperbolic_system.h.
| using ryujin::EulerBarotropic::HyperbolicSystemView< dim, Number >::StateVector = Vectors:: StateVector<ScalarNumber, problem_dimension, n_precomputed_values> |
A compound state vector.
Definition at line 265 of file hyperbolic_system.h.
| using ryujin::EulerBarotropic::HyperbolicSystemView< dim, Number >::HyperbolicVector = Vectors::MultiComponentVector<ScalarNumber, problem_dimension> |
MulticomponentVector for storing the hyperbolic state vector:
Definition at line 271 of file hyperbolic_system.h.
| using ryujin::EulerBarotropic::HyperbolicSystemView< dim, Number >::PrecomputedVector = Vectors::MultiComponentVector<ScalarNumber, n_precomputed_values> |
MulticomponentVector for storing a vector of precomputed states:
Definition at line 277 of file hyperbolic_system.h.
| using ryujin::EulerBarotropic::HyperbolicSystemView< dim, Number >::PrecomputedVectorView = Vectors::MultiComponentVectorView< ScalarNumber, n_precomputed_values, dealii::VectorizedArray<ScalarNumber>::size(), dealii::MemorySpace::Host, false> |
MulticomponentVectorView for accessing a vector of precomputed states:
Definition at line 284 of file hyperbolic_system.h.
| using ryujin::EulerBarotropic::HyperbolicSystemView< dim, Number >::InitialPrecomputedVector = Vectors::MultiComponentVector<ScalarNumber, n_initial_precomputed_values> |
MulticomponentVector for storing a vector of precomputed initial states:
Definition at line 295 of file hyperbolic_system.h.
| using ryujin::EulerBarotropic::HyperbolicSystemView< dim, Number >::InitialPrecomputedVectorView = Vectors::MultiComponentVectorView< ScalarNumber, n_initial_precomputed_values, dealii::VectorizedArray<ScalarNumber>::size(), dealii::MemorySpace::Host, false> |
MulticomponentVectorView for accessing a vector of precomputed initial states:
Definition at line 303 of file hyperbolic_system.h.
|
inline |
Constructor taking a reference to the underlying HyperbolicSystem
Definition at line 320 of file hyperbolic_system.h.
|
inline |
Definition at line 332 of file hyperbolic_system.h.
|
inline |
Definition at line 337 of file hyperbolic_system.h.
|
inline |
Definition at line 343 of file hyperbolic_system.h.
|
inline |
Definition at line 349 of file hyperbolic_system.h.
|
inline |
For a given density \(\rho\) return the specific internal energy \(e\).
Definition at line 365 of file hyperbolic_system.h.
|
inline |
For a given density \(\rho\) return the pressure \(p\).
Definition at line 384 of file hyperbolic_system.h.
|
inline |
For a given density \(\rho\) and specific internal energy \(e\) return the sound speed \(a\).
Definition at line 405 of file hyperbolic_system.h.
|
inlinestatic |
For a given (1+dim dimensional) state vector U, return the density U[0]
Definition at line 787 of file hyperbolic_system.h.
|
inline |
Given a density rho this function returns 0 if the magnitude of rho is smaller or equal than relaxation_large * rho_cutoff. Otherwise rho is returned unmodified. Here, rho_cutoff is the reference density multiplied by eps.
Definition at line 795 of file hyperbolic_system.h.
|
inlinestatic |
For a given (1+dim dimensional) state vector U, return the momentum vector [U[1], ..., U[1+dim]].
Definition at line 809 of file hyperbolic_system.h.
|
inline |
For a given (1+dim dimensional) barotropic state vector U, compute and return the total energy of the system.
\[ \eta = \rho e(\rho) + \frac12\rho&{-1}|\vec m|^2 \]
Definition at line 820 of file hyperbolic_system.h.
|
inline |
For a given (1+dim dimensional) barotropic state vector U, compute and return the derivative \(\eta'\) of the total energy.
Definition at line 834 of file hyperbolic_system.h.
|
inline |
Returns whether the state U is admissible. If U is a vectorized state then U is admissible if all vectorized values are admissible.
Definition at line 857 of file hyperbolic_system.h.
| state_type ryujin::EulerBarotropic::HyperbolicSystemView< dim, Number >::prescribe_riemann_characteristic | ( | const state_type & | U, |
| const Number & | p, | ||
| const state_type & | U_bar, | ||
| const Number & | p_bar, | ||
| const dealii::Tensor< 1, dim, Number > & | normal | ||
| ) | const |
Decomposes a given state U into Riemann invariants and then replaces the first or second Riemann characteristic from the one taken from U_bar state. Note that the U_bar state is just the prescribed dirichlet values.
| state_type ryujin::EulerBarotropic::HyperbolicSystemView< dim, Number >::apply_boundary_conditions | ( | const dealii::types::boundary_id | id, |
| const state_type & | U, | ||
| const dealii::Tensor< 1, dim, Number > & | normal, | ||
| const Lambda & | get_dirichlet_data | ||
| ) | const |
Apply boundary conditions.
For the compressible Euler equations we have:
|
inline |
Given a state U and a pressure p compute the flux
\[ \begin{pmatrix} \textbf m \\ \textbf v\otimes \textbf m + p\mathbb{I}_d \end{pmatrix}, \]
Definition at line 993 of file hyperbolic_system.h.
|
inline |
Given a state U_i and an index i compute flux contributions.
Intended usage:
For the Euler equations we simply compute f(U_i).
Definition at line 1013 of file hyperbolic_system.h.
|
inline |
Definition at line 1027 of file hyperbolic_system.h.
|
inline |
Given flux contributions flux_i and flux_j compute the flux (-f(U_i) - f(U_j)
Definition at line 1041 of file hyperbolic_system.h.
References ryujin::add(), and ryujin::contract().
|
delete |
|
delete |
|
delete |
| state_type ryujin::EulerBarotropic::HyperbolicSystemView< dim, Number >::expand_state | ( | const ST & | state | ) | const |
Given a state vector associated with a different spatial dimensions than the current one, return an "expanded" version of the state vector associated with dim spatial dimensions where the momentum vector of the conserved state state is expaned with zeros to a total length of dim entries.
| state_type ryujin::EulerBarotropic::HyperbolicSystemView< dim, Number >::from_initial_state | ( | const ST & | initial_state | ) | const |
Given an initial state [rho, u_1, ..., u_d, p] return a conserved state [rho, m_1, ..., m_d, E]. Most notably, the specific equation of state oracle is queried to convert the pressure value into a specific internal energy.
|
inline |
Given a primitive state [rho, v_1, ..., v_d] return a conserved state.
Definition at line 1085 of file hyperbolic_system.h.
|
inline |
Given a conserved state return a primitive state [rho, v_1, ..., v_d]
Definition at line 1101 of file hyperbolic_system.h.
| state_type ryujin::EulerBarotropic::HyperbolicSystemView< dim, Number >::apply_galilei_transform | ( | const state_type & | state, |
| const Lambda & | lambda | ||
| ) | const |
Transform the current state according to a given operator lambda acting on a dim dimensional momentum (or velocity) vector.
|
staticconstexpr |
The dimension of the state space.
Definition at line 181 of file hyperbolic_system.h.
|
inlinestatic |
An array holding all component names of the conserved state as a string.
Definition at line 203 of file hyperbolic_system.h.
|
inlinestatic |
An array holding all component names of the primitive state as a string.
Definition at line 218 of file hyperbolic_system.h.
|
staticconstexpr |
The number of precomputed values.
Definition at line 232 of file hyperbolic_system.h.
|
inlinestatic |
An array holding all component names of the precomputed values.
Definition at line 242 of file hyperbolic_system.h.
|
staticconstexpr |
The number of precomputed initial values.
Definition at line 248 of file hyperbolic_system.h.
|
inlinestatic |
An array holding all component names of the precomputed values.
Definition at line 259 of file hyperbolic_system.h.
|
staticconstexpr |
Definition at line 427 of file hyperbolic_system.h.
|
staticconstexpr |
Definition at line 428 of file hyperbolic_system.h.
|
staticconstexpr |
Definition at line 429 of file hyperbolic_system.h.
|
staticconstexpr |
The low-order and high-order fluxes are the same:
Definition at line 588 of file hyperbolic_system.h.
|
staticconstexpr |
We do not have source terms
Definition at line 602 of file hyperbolic_system.h.