[P]arallel [Hi]gh-order [Li]brary for [P]DEs  Latest
Parallel High-Order Library for PDEs through hp-adaptive Discontinuous Galerkin methods
PHiLiP::Physics::Euler< dim, nstate, real > Class Template Reference

Euler equations. Derived from PhysicsBase. More...

#include <euler.h>

Inheritance diagram for PHiLiP::Physics::Euler< dim, nstate, real >:
Collaboration diagram for PHiLiP::Physics::Euler< dim, nstate, real >:

Public Types

using two_point_num_flux_enum = Parameters::AllParameters::TwoPointNumericalFlux
 
- Public Types inherited from PHiLiP::Physics::PhysicsBase< dim, nstate, real >
using NonPhysicalBehaviorEnum = Parameters::AllParameters::NonPhysicalBehaviorEnum
 

Public Member Functions

 Euler (const Parameters::AllParameters *const parameters_input, const double ref_length, const double gamma_gas, const double mach_inf, const double angle_of_attack, const double side_slip_angle, std::shared_ptr< ManufacturedSolutionFunction< dim, real > > manufactured_solution_function=nullptr, const two_point_num_flux_enum two_point_num_flux_type=two_point_num_flux_enum::KG, const bool has_nonzero_diffusion=false, const bool has_nonzero_physical_source=false)
 Constructor.
 
std::array< dealii::Tensor< 1, dim, real >, nstate > convective_flux (const std::array< real, nstate > &conservative_soln) const override
 Convective flux: \( \mathbf{F}_{conv} \).
 
std::array< real, nstate > convective_normal_flux (const std::array< real, nstate > &conservative_soln, const dealii::Tensor< 1, dim, real > &normal) const
 Convective normal flux: \( \mathbf{F}_{conv} \cdot \hat{n} \).
 
dealii::Tensor< 2, nstate, real > convective_flux_directional_jacobian (const std::array< real, nstate > &conservative_soln, const dealii::Tensor< 1, dim, real > &normal) const
 Convective flux Jacobian: \( \frac{\partial \mathbf{F}_{conv}}{\partial w} \cdot \mathbf{n} \).
 
std::array< real, nstate > convective_eigenvalues (const std::array< real, nstate > &, const dealii::Tensor< 1, dim, real > &) const override
 Spectral radius of convective term Jacobian is 'c'.
 
real max_convective_eigenvalue (const std::array< real, nstate > &soln) const override
 Maximum convective eigenvalue.
 
real max_convective_normal_eigenvalue (const std::array< real, nstate > &soln, const dealii::Tensor< 1, dim, real > &normal) const override
 Maximum convective normal eigenvalue (used in Lax-Friedrichs) More...
 
real max_viscous_eigenvalue (const std::array< real, nstate > &soln) const override
 Maximum viscous eigenvalue.
 
std::array< dealii::Tensor< 1, dim, real >, nstate > dissipative_flux (const std::array< real, nstate > &conservative_soln, const std::array< dealii::Tensor< 1, dim, real >, nstate > &solution_gradient, const dealii::types::global_dof_index cell_index) const
 Dissipative flux: 0.
 
virtual std::array< dealii::Tensor< 1, dim, real >, nstate > dissipative_flux (const std::array< real, nstate > &conservative_soln, const std::array< dealii::Tensor< 1, dim, real >, nstate > &solution_gradient) const
 (function overload) Dissipative flux: 0
 
std::array< real, nstate > source_term (const dealii::Point< dim, real > &pos, const std::array< real, nstate > &conservative_soln, const real current_time, const dealii::types::global_dof_index cell_index) const
 Source term is zero or depends on manufactured solution.
 
virtual std::array< real, nstate > source_term (const dealii::Point< dim, real > &pos, const std::array< real, nstate > &conservative_soln, const real current_time) const
 (function overload) Source term is zero or depends on manufactured solution
 
std::array< real, nstate > convective_source_term (const dealii::Point< dim, real > &pos) const
 Convective flux contribution to the source term.
 
template<typename real2 >
std::array< real2, nstate > convert_conservative_to_primitive (const std::array< real2, nstate > &conservative_soln) const
 
std::array< real, nstate > convert_primitive_to_conservative (const std::array< real, nstate > &primitive_soln) const
 
template<typename real2 >
real2 compute_pressure (const std::array< real2, nstate > &conservative_soln) const
 Evaluate pressure from conservative variables.
 
template<typename real2 >
real2 compute_entropy (const real2 density, const real2 pressure) const
 Evaluate physical entropy = log(p ^{-}) from pressure and density.
 
real compute_specific_enthalpy (const std::array< real, nstate > &conservative_soln, const real pressure) const
 Evaluate pressure from conservative variables.
 
real compute_numerical_entropy_function (const std::array< real, nstate > &conservative_soln) const
 Compute numerical entropy function -rho s.
 
real compute_sound (const std::array< real, nstate > &conservative_soln) const
 Evaluate speed of sound from conservative variables.
 
real compute_sound (const real density, const real pressure) const
 Evaluate speed of sound from density and pressure.
 
template<typename real2 >
dealii::Tensor< 1, dim, real2 > compute_velocities (const std::array< real2, nstate > &conservative_soln) const
 Evaluate velocities from conservative variables.
 
template<typename real2 >
real2 compute_velocity_squared (const dealii::Tensor< 1, dim, real2 > &velocities) const
 Given the velocity vector \( \mathbf{u} \), returns the dot-product \( \mathbf{u} \cdot \mathbf{u} \).
 
template<typename real2 >
dealii::Tensor< 1, dim, real2 > extract_velocities_from_primitive (const std::array< real2, nstate > &primitive_soln) const
 Given primitive variables, returns velocities.
 
real compute_total_energy (const std::array< real, nstate > &primitive_soln) const
 Given primitive variables, returns total energy. More...
 
real compute_kinetic_energy_from_primitive_solution (const std::array< real, nstate > &primitive_soln) const
 Given primitive variables, returns kinetic energy.
 
real compute_kinetic_energy_from_conservative_solution (const std::array< real, nstate > &conservative_soln) const
 Given conservative variables, returns kinetic energy.
 
real compute_entropy_measure (const std::array< real, nstate > &conservative_soln) const
 Evaluate entropy from conservative variables. More...
 
real compute_entropy_measure (const real density, const real pressure) const
 Evaluate entropy from density and pressure.
 
real compute_mach_number (const std::array< real, nstate > &conservative_soln) const
 Given conservative variables, returns Mach number.
 
template<typename real2 >
real2 compute_temperature (const std::array< real2, nstate > &primitive_soln) const
 Given primitive variables, returns NON-DIMENSIONALIZED temperature using free-stream non-dimensionalization. More...
 
real compute_density_from_pressure_temperature (const real pressure, const real temperature) const
 Given pressure and temperature, returns NON-DIMENSIONALIZED density using free-stream non-dimensionalization. More...
 
real compute_temperature_from_density_pressure (const real density, const real pressure) const
 Given density and pressure, returns NON-DIMENSIONALIZED temperature using free-stream non-dimensionalization. More...
 
real compute_pressure_from_density_temperature (const real density, const real temperature) const
 Given density and temperature, returns NON-DIMENSIONALIZED pressure using free-stream non-dimensionalization. More...
 
std::array< dealii::Tensor< 1, dim, real >, nstate > convective_numerical_split_flux (const std::array< real, nstate > &conservative_soln1, const std::array< real, nstate > &conservative_soln2) const override
 Evaluates convective flux based on the chosen split form.
 
std::array< real, nstate > compute_entropy_variables (const std::array< real, nstate > &conservative_soln) const
 
std::array< real, nstate > compute_conservative_variables_from_entropy_variables (const std::array< real, nstate > &entropy_var) const
 
std::array< real, nstate > compute_kinetic_energy_variables (const std::array< real, nstate > &conservative_soln) const
 Computes the kinetic energy variables.
 
real compute_mean_density (const std::array< real, nstate > &conservative_soln1, const std::array< real, nstate > &convervative_soln2) const
 Mean density given two sets of conservative solutions. More...
 
real compute_mean_pressure (const std::array< real, nstate > &conservative_soln1, const std::array< real, nstate > &convervative_soln2) const
 Mean pressure given two sets of conservative solutions. More...
 
dealii::Tensor< 1, dim, real > compute_mean_velocities (const std::array< real, nstate > &conservative_soln1, const std::array< real, nstate > &convervative_soln2) const
 Mean velocities given two sets of conservative solutions. More...
 
real compute_mean_specific_total_energy (const std::array< real, nstate > &conservative_soln1, const std::array< real, nstate > &convervative_soln2) const
 Mean specific total energy given two sets of conservative solutions. More...
 
void boundary_face_values (const int, const dealii::Point< dim, real > &, const dealii::Tensor< 1, dim, real > &, const std::array< real, nstate > &, const std::array< dealii::Tensor< 1, dim, real >, nstate > &, std::array< real, nstate > &, std::array< dealii::Tensor< 1, dim, real >, nstate > &) const
 Boundary condition handler.
 
virtual dealii::Vector< double > post_compute_derived_quantities_vector (const dealii::Vector< double > &uh, const std::vector< dealii::Tensor< 1, dim > > &duh, const std::vector< dealii::Tensor< 2, dim > > &dduh, const dealii::Tensor< 1, dim > &normals, const dealii::Point< dim > &evaluation_points) const
 For post processing purposes (update comment later)
 
virtual std::vector< std::string > post_get_names () const
 For post processing purposes, sets the base names (with no prefix or suffix) of the computed quantities.
 
virtual std::vector< dealii::DataComponentInterpretation::DataComponentInterpretation > post_get_data_component_interpretation () const
 For post processing purposes, sets the interpretation of each computed quantity as either scalar or vector.
 
virtual dealii::UpdateFlags post_get_needed_update_flags () const
 For post processing purposes (update comment later)
 
- Public Member Functions inherited from PHiLiP::Physics::PhysicsBase< dim, nstate, real >
 PhysicsBase (const Parameters::AllParameters *const parameters_input, const bool has_nonzero_diffusion_input, const bool has_nonzero_physical_source_input, const dealii::Tensor< 2, 3, double > input_diffusion_tensor=Parameters::ManufacturedSolutionParam::get_default_diffusion_tensor(), std::shared_ptr< ManufacturedSolutionFunction< dim, real > > manufactured_solution_function_input=nullptr)
 Default constructor that will set the constants.
 
 PhysicsBase (const Parameters::AllParameters *const parameters_input, const bool has_nonzero_diffusion_input, const bool has_nonzero_physical_source_input, std::shared_ptr< ManufacturedSolutionFunction< dim, real > > manufactured_solution_function_input=nullptr)
 Constructor that will call default constructor.
 
virtual ~PhysicsBase ()=default
 Virtual destructor required for abstract classes.
 
virtual std::array< real, nstate > physical_source_term (const dealii::Point< dim, real > &pos, const std::array< real, nstate > &solution, const std::array< dealii::Tensor< 1, dim, real >, nstate > &solution_gradient, const dealii::types::global_dof_index cell_index) const
 Physical source term that does require differentiation.
 
virtual std::array< real, nstate > artificial_source_term (const real viscosity_coefficient, const dealii::Point< dim, real > &pos, const std::array< real, nstate > &solution) const
 Artificial source term that does not require differentiation stemming from artificial dissipation.
 
virtual dealii::Vector< double > post_compute_derived_quantities_scalar (const double &uh, const dealii::Tensor< 1, dim > &, const dealii::Tensor< 2, dim > &, const dealii::Tensor< 1, dim > &, const dealii::Point< dim > &) const
 Returns current scalar solution to be used by PhysicsPostprocessor to output current solution. More...
 
template<typename real2 >
real2 handle_non_physical_result (const std::string message="") const
 Function to handle nonphysical results. More...
 

Public Attributes

const double ref_length
 Reference length.
 
const double gam
 Constant heat capacity ratio of fluid.
 
const double gamm1
 Constant heat capacity ratio (Gamma-1.0) used often.
 
const double density_inf
 
const double mach_inf
 Farfield Mach number.
 
const double mach_inf_sqr
 
const double angle_of_attack
 Angle of attack. More...
 
const double side_slip_angle
 Sideslip angle. More...
 
const double sound_inf
 Non-dimensionalized sound* at infinity.
 
const double pressure_inf
 Non-dimensionalized pressure* at infinity.
 
const double entropy_inf
 Entropy measure at infinity.
 
const two_point_num_flux_enum two_point_num_flux_type
 Two point numerical flux type (for split form)
 
double temperature_inf
 Non-dimensionalized temperature* at infinity. Should equal 1/density*(inf)
 
double dynamic_pressure_inf
 Non-dimensionalized dynamic pressure* at infinity.
 
dealii::Tensor< 1, dim, double > velocities_inf
 Non-dimensionalized Velocity vector at farfield. More...
 
- Public Attributes inherited from PHiLiP::Physics::PhysicsBase< dim, nstate, real >
const bool has_nonzero_diffusion
 Flag to signal that diffusion term is non-zero.
 
const bool has_nonzero_physical_source
 Flag to signal that physical source term is non-zero.
 
const Parameters::AllParameters *const all_parameters
 Pointer to parameters object.
 
const NonPhysicalBehaviorEnum non_physical_behavior_type
 Determines type of nonphysical behavior.
 
std::shared_ptr< ManufacturedSolutionFunction< dim, real > > manufactured_solution_function
 Manufactured solution function.
 
const double BIG_NUMBER = 1e100
 BIG_NUMBER which is returned in place of NaN according to handle_non_physical_result() More...
 

Protected Member Functions

template<typename real2 >
bool check_positive_quantity (real2 &quantity, const std::string qty_name) const
 Check positive quantity and modify it according to handle_non_physical_result() More...
 
void boundary_slip_wall (const dealii::Tensor< 1, dim, real > &normal_int, const std::array< real, nstate > &soln_int, const std::array< dealii::Tensor< 1, dim, real >, nstate > &soln_grad_int, std::array< real, nstate > &soln_bc, std::array< dealii::Tensor< 1, dim, real >, nstate > &soln_grad_bc) const
 
virtual void boundary_wall (const dealii::Tensor< 1, dim, real > &normal_int, const std::array< real, nstate > &soln_int, const std::array< dealii::Tensor< 1, dim, real >, nstate > &soln_grad_int, std::array< real, nstate > &soln_bc, std::array< dealii::Tensor< 1, dim, real >, nstate > &soln_grad_bc) const
 Wall boundary condition.
 
virtual void boundary_manufactured_solution (const dealii::Point< dim, real > &pos, const dealii::Tensor< 1, dim, real > &normal_int, const std::array< real, nstate > &soln_int, const std::array< dealii::Tensor< 1, dim, real >, nstate > &soln_grad_int, std::array< real, nstate > &soln_bc, std::array< dealii::Tensor< 1, dim, real >, nstate > &soln_grad_bc) const
 Evaluate the manufactured solution boundary conditions.
 
void boundary_pressure_outflow (const real total_inlet_pressure, const real back_pressure, const std::array< real, nstate > &soln_int, std::array< real, nstate > &soln_bc) const
 
void boundary_inflow (const real total_inlet_pressure, const real total_inlet_temperature, const dealii::Tensor< 1, dim, real > &normal_int, const std::array< real, nstate > &soln_int, std::array< real, nstate > &soln_bc) const
 
void boundary_riemann (const dealii::Tensor< 1, dim, real > &normal_int, const std::array< real, nstate > &soln_int, std::array< real, nstate > &soln_bc) const
 
void boundary_farfield (std::array< real, nstate > &soln_bc) const
 Simple farfield boundary conditions based on freestream values.
 
std::array< real, nstate > get_manufactured_solution_value (const dealii::Point< dim, real > &pos) const
 Get manufactured solution value.
 
std::array< dealii::Tensor< 1, dim, real >, nstate > get_manufactured_solution_gradient (const dealii::Point< dim, real > &pos) const
 Get manufactured solution gradient.
 
std::array< dealii::Tensor< 1, dim, real >, nstate > convective_numerical_split_flux_kennedy_gruber (const std::array< real, nstate > &conservative_soln1, const std::array< real, nstate > &conservative_soln2) const
 
std::array< real, nstate > compute_ismail_roe_parameter_vector_from_primitive (const std::array< real, nstate > &primitive_soln) const
 Compute Ismail-Roe parameter vector from primitive solution.
 
real compute_ismail_roe_logarithmic_mean (const real val1, const real val2) const
 Compute Ismail-Roe logarithmic mean.
 
std::array< dealii::Tensor< 1, dim, real >, nstate > convective_numerical_split_flux_ismail_roe (const std::array< real, nstate > &conservative_soln1, const std::array< real, nstate > &conservative_soln2) const
 
std::array< dealii::Tensor< 1, dim, real >, nstate > convective_numerical_split_flux_chandrashekar (const std::array< real, nstate > &conservative_soln1, const std::array< real, nstate > &conservative_soln2) const
 Chandrashekar entropy conserving flux.
 
std::array< dealii::Tensor< 1, dim, real >, nstate > convective_numerical_split_flux_ranocha (const std::array< real, nstate > &conservative_soln1, const std::array< real, nstate > &conservative_soln2) const
 Ranocha pressure equilibrium preserving, entropy and energy conserving flux.
 

Additional Inherited Members

- Protected Attributes inherited from PHiLiP::Physics::PhysicsBase< dim, nstate, real >
dealii::ConditionalOStream pcout
 ConditionalOStream. More...
 
dealii::Tensor< 2, dim, double > diffusion_tensor
 Anisotropic diffusion matrix. More...
 

Detailed Description

template<int dim, int nstate, typename real>
class PHiLiP::Physics::Euler< dim, nstate, real >

Euler equations. Derived from PhysicsBase.

Only 2D and 3D State variable and convective fluxes given by

\[ \mathbf{w} = \begin{bmatrix} \rho \\ \rho v_1 \\ \rho v_2 \\ \rho v_3 \\ \rho E \end{bmatrix} , \qquad \mathbf{F}_{conv} = \begin{bmatrix} \mathbf{f}^x_{conv}, \mathbf{f}^y_{conv}, \mathbf{f}^z_{conv} \end{bmatrix} = \begin{bmatrix} \begin{bmatrix} \rho v_1 \\ \rho v_1 v_1 + p \\ \rho v_1 v_2 \\ \rho v_1 v_3 \\ v_1 (\rho e+p) \end{bmatrix} , \begin{bmatrix} \rho v_2 \\ \rho v_1 v_2 \\ \rho v_2 v_2 + p \\ \rho v_2 v_3 \\ v_2 (\rho e+p) \end{bmatrix} , \begin{bmatrix} \rho v_3 \\ \rho v_1 v_3 \\ \rho v_2 v_3 \\ \rho v_3 v_3 + p \\ v_3 (\rho e+p) \end{bmatrix} \end{bmatrix} \]

where, \( E \) is the specific total energy and \( e \) is the specific internal energy, related by

\[ E = e + |V|^2 / 2 \]

For a calorically perfect gas

\[ p=(\gamma -1)(\rho e-\frac{1}{2}\rho \|\mathbf{v}\|) \]

Dissipative flux \( \mathbf{F}_{diss} = \mathbf{0} \)

Source term \( s(\mathbf{x}) \)

Equation:

\[ \boldsymbol{\nabla} \cdot ( \mathbf{F}_{conv}( w ) + \mathbf{F}_{diss}( w, \boldsymbol{\nabla}(w) ) = s(\mathbf{x}) \]

Still need to provide functions to un-non-dimensionalize the variables. Like, given density_inf

Definition at line 78 of file euler.h.

Member Function Documentation

◆ boundary_inflow()

template<int dim, int nstate, typename real>
void PHiLiP::Physics::Euler< dim, nstate, real >::boundary_inflow ( const real  total_inlet_pressure,
const real  total_inlet_temperature,
const dealii::Tensor< 1, dim, real > &  normal_int,
const std::array< real, nstate > &  soln_int,
std::array< real, nstate > &  soln_bc 
) const
protected

Inflow boundary conditions (both subsonic and supersonic) Reference: Carlson 2011, sec. 2.2 & sec 2.9

Definition at line 1200 of file euler.cpp.

◆ boundary_pressure_outflow()

template<int dim, int nstate, typename real>
void PHiLiP::Physics::Euler< dim, nstate, real >::boundary_pressure_outflow ( const real  total_inlet_pressure,
const real  back_pressure,
const std::array< real, nstate > &  soln_int,
std::array< real, nstate > &  soln_bc 
) const
protected

Pressure Outflow Boundary Condition (back pressure) Reference: Carlson 2011, sec. 2.4

Definition at line 1160 of file euler.cpp.

◆ boundary_riemann()

template<int dim, int nstate, typename real>
void PHiLiP::Physics::Euler< dim, nstate, real >::boundary_riemann ( const dealii::Tensor< 1, dim, real > &  normal_int,
const std::array< real, nstate > &  soln_int,
std::array< real, nstate > &  soln_bc 
) const
protected

Riemann-based farfield boundary conditions based on freestream values. Reference: ? (ask Doug)

Definition at line 968 of file euler.cpp.

◆ boundary_slip_wall()

template<int dim, int nstate, typename real>
void PHiLiP::Physics::Euler< dim, nstate, real >::boundary_slip_wall ( const dealii::Tensor< 1, dim, real > &  normal_int,
const std::array< real, nstate > &  soln_int,
const std::array< dealii::Tensor< 1, dim, real >, nstate > &  soln_grad_int,
std::array< real, nstate > &  soln_bc,
std::array< dealii::Tensor< 1, dim, real >, nstate > &  soln_grad_bc 
) const
protected

Slip wall boundary conditions (No penetration)

  • Given by Algorithm II of the following paper:
  • * Krivodonova, L., and Berger, M., “High-order accurate implementation of solid wall boundary conditions in curved geometries,” Journal of Computational Physics, vol. 211, 2006, pp. 492–512.

Definition at line 1042 of file euler.cpp.

◆ check_positive_quantity()

template<int dim, int nstate, typename real >
template<typename real2 >
template bool PHiLiP::Physics::Euler< dim, nstate, real >::check_positive_quantity< FadType > ( real2 &  quantity,
const std::string  qty_name 
) const
protected

Check positive quantity and modify it according to handle_non_physical_result()

in PhysicsBase class

Definition at line 154 of file euler.cpp.

◆ compute_conservative_variables_from_entropy_variables()

template<int dim, int nstate, typename real>
std::array< real, nstate > PHiLiP::Physics::Euler< dim, nstate, real >::compute_conservative_variables_from_entropy_variables ( const std::array< real, nstate > &  entropy_var) const
virtual

Computes the conservative variables [density, [momentum], total energy from the entropy variables according to Chan 2018, eq. 120

Implements PHiLiP::Physics::PhysicsBase< dim, nstate, real >.

Definition at line 704 of file euler.cpp.

◆ compute_density_from_pressure_temperature()

template<int dim, int nstate, typename real>
real PHiLiP::Physics::Euler< dim, nstate, real >::compute_density_from_pressure_temperature ( const real  pressure,
const real  temperature 
) const
inline

Given pressure and temperature, returns NON-DIMENSIONALIZED density using free-stream non-dimensionalization.

See the book I do like CFD, sec 4.14.2

Definition at line 344 of file euler.cpp.

◆ compute_entropy_measure()

template<int dim, int nstate, typename real>
real PHiLiP::Physics::Euler< dim, nstate, real >::compute_entropy_measure ( const std::array< real, nstate > &  conservative_soln) const
inline

Evaluate entropy from conservative variables.

Note that it is not the actual entropy since it's missing some constants. Used to check entropy convergence See discussion in https://physics.stackexchange.com/questions/116779/entropy-is-constant-how-to-express-this-equation-in-terms-of-pressure-and-densi?answertab=votes#tab-top

Parameters
[in]conservative_solnConservative solution (density, momentum, energy)
Returns
Entropy measure

Definition at line 288 of file euler.cpp.

◆ compute_entropy_variables()

template<int dim, int nstate, typename real>
std::array< real, nstate > PHiLiP::Physics::Euler< dim, nstate, real >::compute_entropy_variables ( const std::array< real, nstate > &  conservative_soln) const
virtual

Computes the entropy variables. Given conservative variables [density, [momentum], total energy], Computes entropy variables according to Chan 2018, eq. 119

Implements PHiLiP::Physics::PhysicsBase< dim, nstate, real >.

Definition at line 682 of file euler.cpp.

◆ compute_mean_density()

template<int dim, int nstate, typename real>
real PHiLiP::Physics::Euler< dim, nstate, real >::compute_mean_density ( const std::array< real, nstate > &  conservative_soln1,
const std::array< real, nstate > &  convervative_soln2 
) const
inline

Mean density given two sets of conservative solutions.

Used in the implementation of the split form.

Definition at line 746 of file euler.cpp.

◆ compute_mean_pressure()

template<int dim, int nstate, typename real>
real PHiLiP::Physics::Euler< dim, nstate, real >::compute_mean_pressure ( const std::array< real, nstate > &  conservative_soln1,
const std::array< real, nstate > &  convervative_soln2 
) const
inline

Mean pressure given two sets of conservative solutions.

Used in the implementation of the split form.

Definition at line 754 of file euler.cpp.

◆ compute_mean_specific_total_energy()

template<int dim, int nstate, typename real>
real PHiLiP::Physics::Euler< dim, nstate, real >::compute_mean_specific_total_energy ( const std::array< real, nstate > &  conservative_soln1,
const std::array< real, nstate > &  convervative_soln2 
) const
inline

Mean specific total energy given two sets of conservative solutions.

Used in the implementation of the split form.

Definition at line 778 of file euler.cpp.

◆ compute_mean_velocities()

template<int dim, int nstate, typename real>
dealii::Tensor< 1, dim, real > PHiLiP::Physics::Euler< dim, nstate, real >::compute_mean_velocities ( const std::array< real, nstate > &  conservative_soln1,
const std::array< real, nstate > &  convervative_soln2 
) const
inline

Mean velocities given two sets of conservative solutions.

Used in the implementation of the split form.

Definition at line 764 of file euler.cpp.

◆ compute_pressure_from_density_temperature()

template<int dim, int nstate, typename real>
real PHiLiP::Physics::Euler< dim, nstate, real >::compute_pressure_from_density_temperature ( const real  density,
const real  temperature 
) const
inline

Given density and temperature, returns NON-DIMENSIONALIZED pressure using free-stream non-dimensionalization.

See the book I do like CFD, sec 4.14.2

Definition at line 360 of file euler.cpp.

◆ compute_temperature()

template<int dim, int nstate, typename real >
template<typename real2 >
template FadType PHiLiP::Physics::Euler< dim, nstate, real >::compute_temperature< FadType > ( const std::array< real2, nstate > &  primitive_soln) const
inline

Given primitive variables, returns NON-DIMENSIONALIZED temperature using free-stream non-dimensionalization.

See the book I do like CFD, sec 4.14.2

Definition at line 334 of file euler.cpp.

◆ compute_temperature_from_density_pressure()

template<int dim, int nstate, typename real>
real PHiLiP::Physics::Euler< dim, nstate, real >::compute_temperature_from_density_pressure ( const real  density,
const real  pressure 
) const
inline

Given density and pressure, returns NON-DIMENSIONALIZED temperature using free-stream non-dimensionalization.

See the book I do like CFD, sec 4.14.2

Definition at line 352 of file euler.cpp.

◆ compute_total_energy()

template<int dim, int nstate, typename real>
real PHiLiP::Physics::Euler< dim, nstate, real >::compute_total_energy ( const std::array< real, nstate > &  primitive_soln) const
inline

Given primitive variables, returns total energy.

Parameters
[in]primitive_solnPrimitive solution (density, momentum, energy)
Returns
Entropy measure

Definition at line 258 of file euler.cpp.

◆ convective_numerical_split_flux_ismail_roe()

template<int dim, int nstate, typename real>
std::array< dealii::Tensor< 1, dim, real >, nstate > PHiLiP::Physics::Euler< dim, nstate, real >::convective_numerical_split_flux_ismail_roe ( const std::array< real, nstate > &  conservative_soln1,
const std::array< real, nstate > &  conservative_soln2 
) const
protected

Entropy conserving split form flux of Ismail & Roe. Refer to Gassner's paper (2016) Eq. 3.17

Definition at line 522 of file euler.cpp.

◆ convective_numerical_split_flux_kennedy_gruber()

template<int dim, int nstate, typename real>
std::array< dealii::Tensor< 1, dim, real >, nstate > PHiLiP::Physics::Euler< dim, nstate, real >::convective_numerical_split_flux_kennedy_gruber ( const std::array< real, nstate > &  conservative_soln1,
const std::array< real, nstate > &  conservative_soln2 
) const
protected

Entropy conserving split form flux of Kennedy and Gruber. Refer to Gassner's paper (2016) Eq. 3.10

Definition at line 459 of file euler.cpp.

◆ convert_conservative_to_primitive()

template<int dim, int nstate, typename real >
template<typename real2 >
template std::array< FadType, PHILIP_DIM+2 > PHiLiP::Physics::Euler< dim, nstate, real >::convert_conservative_to_primitive< FadType > ( const std::array< real2, nstate > &  conservative_soln) const
inline

Given conservative variables [density, [momentum], total energy], returns primitive variables [density, [velocities], pressure].

Opposite of convert_primitive_to_conservative

Definition at line 178 of file euler.cpp.

◆ convert_primitive_to_conservative()

template<int dim, int nstate, typename real>
std::array< real, nstate > PHiLiP::Physics::Euler< dim, nstate, real >::convert_primitive_to_conservative ( const std::array< real, nstate > &  primitive_soln) const
inline

Given primitive variables [density, [velocities], pressure], returns conservative variables [density, [momentum], total energy].

Opposite of convert_primitive_to_conservative

Definition at line 199 of file euler.cpp.

◆ max_convective_normal_eigenvalue()

template<int dim, int nstate, typename real>
real PHiLiP::Physics::Euler< dim, nstate, real >::max_convective_normal_eigenvalue ( const std::array< real, nstate > &  soln,
const dealii::Tensor< 1, dim, real > &  normal 
) const
overridevirtual

Maximum convective normal eigenvalue (used in Lax-Friedrichs)

See the book I do like CFD, equation 3.6.18

Reimplemented from PHiLiP::Physics::PhysicsBase< dim, nstate, real >.

Definition at line 921 of file euler.cpp.

Member Data Documentation

◆ angle_of_attack

template<int dim, int nstate, typename real>
const double PHiLiP::Physics::Euler< dim, nstate, real >::angle_of_attack

Angle of attack.

Mandatory for 2D simulations.

Definition at line 118 of file euler.h.

◆ density_inf

template<int dim, int nstate, typename real>
const double PHiLiP::Physics::Euler< dim, nstate, real >::density_inf

Non-dimensionalized density* at infinity. density* = density/density_ref Choose density_ref = density(inf) density*(inf) = density(inf) / density_ref = density(inf)/density(inf) = 1.0

Definition at line 111 of file euler.h.

◆ mach_inf_sqr

template<int dim, int nstate, typename real>
const double PHiLiP::Physics::Euler< dim, nstate, real >::mach_inf_sqr

Farfield Mach number squared.

Definition at line 114 of file euler.h.

◆ side_slip_angle

template<int dim, int nstate, typename real>
const double PHiLiP::Physics::Euler< dim, nstate, real >::side_slip_angle

Sideslip angle.

Mandatory for 2D and 3D simulations.

Definition at line 122 of file euler.h.

◆ velocities_inf

template<int dim, int nstate, typename real>
dealii::Tensor<1,dim,double> PHiLiP::Physics::Euler< dim, nstate, real >::velocities_inf

Non-dimensionalized Velocity vector at farfield.

Evaluated using mach_number, angle_of_attack, and side_slip_angle.

Definition at line 136 of file euler.h.


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