|
| 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)
|
|
| 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...
|
|
|
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.
|
|
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.