33 p_expression_ =
"(1.4 - 1.0) * rho * e";
37 "A function expression for the pressure as a function of density, "
38 "rho, and specific internal energy, e: p(rho, e)");
40 sie_expression_ =
"p / (rho * (1.4 - 1.0))";
42 "specific internal energy",
44 "A function expression for the specific internal energy as a "
45 "function of density, rho, and pressure, p: e(rho, p)");
47 se_expression_ =
"287.052874 / (1.4 - 1.0) * (log((1.4 - 1.0) * rho * "
48 "e) - 1.4 * log(287.052874 * rho))";
49 add_parameter(
"specific entropy",
51 "A function expression for the specific entropy as a "
52 "function of density, "
53 "rho, and specific internal energy, e: s(rho, e)");
56 add_parameter(
"cold curve bound",
58 "A function expression for the cold curve bound as a "
59 "function of density: e_0(rho)");
61 temperature_expression_ =
"e * (1.4 - 1.0) / 287.052874";
62 add_parameter(
"temperature",
63 temperature_expression_,
64 "A function expression for the temperature as a "
65 "function of density, rho, and specific internal energy, "
68 sos_expression_ =
"sqrt(1.4 * (1.4 - 1.0) * e)";
72 "A function expression for the speed of sound as a function of "
73 "density, rho, and specific internal energy, e: s(rho, e)");
78 "The maximum compressibility constant b for the equation of state");
80 add_parameter(
"interpolatory reference pressure",
82 "The interpolatory reference pressure p_infty used when "
83 "constructing the interpolatory equation of state");
86 "interpolatory reference specific internal energy",
88 "The interpolatory reference specific internal energy q used when "
89 "constructing the interpolatory equation of state");
95 const auto set_up_muparser = [
this] {
96 p_function_ = std::make_unique<dealii::FunctionParser<2>>();
97 p_function_->initialize(
100 sie_function_ = std::make_unique<dealii::FunctionParser<2>>();
101 sie_function_->initialize(
104 se_function_ = std::make_unique<dealii::FunctionParser<2>>();
105 se_function_->initialize(
108 e0_function_ = std::make_unique<dealii::FunctionParser<1>>();
109 e0_function_->initialize(
112 temperature_function_ = std::make_unique<dealii::FunctionParser<2>>();
113 temperature_function_->initialize(
"rho,e",
114 temperature_expression_,
117 sos_function_ = std::make_unique<dealii::FunctionParser<2>>();
118 sos_function_->initialize(
"rho,e", sos_expression_, {});
122 ParameterAcceptor::parse_parameters_call_back.connect(set_up_muparser);