[P]arallel [Hi]gh-order [Li]brary for [P]DEs  Latest
Parallel High-Order Library for PDEs through hp-adaptive Discontinuous Galerkin methods
parameters_euler.cpp
1 #include "parameters/parameters_euler.h"
2 
3 namespace PHiLiP {
4 namespace Parameters {
5 
6 void EulerParam::declare_parameters (dealii::ParameterHandler &prm)
7 {
8  prm.enter_subsection("euler");
9  {
10  prm.declare_entry("reference_length", "1.0",
11  dealii::Patterns::Double(),
12  "Reference length for non-dimensionalization.");
13  prm.declare_entry("mach_infinity", "0.5",
14  dealii::Patterns::Double(1e-15, 2500),
15  "Farfield Mach number");
16  prm.declare_entry("gamma_gas", "1.4",
17  dealii::Patterns::Double(1e-15, 10000000),
18  "Gamma gas constant");
19  prm.declare_entry("angle_of_attack", "0.0",
20  dealii::Patterns::Double(-180, 180),
21  "Angle of attack in degrees. Required for 2D");
22  prm.declare_entry("side_slip_angle", "0.0",
23  dealii::Patterns::Double(-180, 180),
24  "Side slip angle in degrees. Required for 3D");
25 
26  using convert_tensor = dealii::Patterns::Tools::Convert<dealii::Tensor<1, 5, double>>;
27  prm.declare_entry("custom_boundary_for_each_state", "0,0,0,0,0",
28  *convert_tensor::to_pattern(),
29  "Custom boundary values for each primitive state. Used for cases that involve post shock boundaries or do not work with non-dimensionalization (e.g. Shu Osher).");
30  }
31  prm.leave_subsection();
32 }
33 
34 void EulerParam ::parse_parameters (dealii::ParameterHandler &prm)
35 {
36  prm.enter_subsection("euler");
37  {
38  ref_length = prm.get_double("reference_length");
39  mach_inf = prm.get_double("mach_infinity");
40  gamma_gas = prm.get_double("gamma_gas");
41  const double pi = atan(1.0) * 4.0;
42  angle_of_attack = prm.get_double("angle_of_attack") * pi/180.0;
43  side_slip_angle = prm.get_double("side_slip_angle") * pi/180.0;
44 
45  using convert_tensor = dealii::Patterns::Tools::Convert<dealii::Tensor<1, 5, double>>;
46  custom_boundary_for_each_state = convert_tensor::to_value(prm.get("custom_boundary_for_each_state"));
47  }
48  prm.leave_subsection();
49 }
50 
51 } // Parameters namespace
52 } // PHiLiP namespace
void parse_parameters(dealii::ParameterHandler &prm)
Parses input file and sets the variables.
static void declare_parameters(dealii::ParameterHandler &prm)
Declares the possible variables and sets the defaults.
double mach_inf
Mach number at infinity.
Files for the baseline physics.
Definition: ADTypes.hpp:10
double ref_length
Reference length.
double side_slip_angle
Input file provides in degrees, but the value stored here is in radians.
double angle_of_attack
Input file provides in degrees, but the value stored here is in radians.
dealii::Tensor< 1, 5, double > custom_boundary_for_each_state
Custom boundary values.