31 _specific_internal_energy_neighbor(
38 _speed_neighbor(getNeighborADMaterialProperty<
Real>(
nms::
speed)),
61 using std::sqrt, std::min, std::max;
66 const ADReal v1 = 1.0 / rho1;
68 const ADReal E1 = e1 + 0.5 * u1 * u1;
69 const ADReal p1 = hllc_data.
fluid.p_from_v_e(v1, e1);
71 const ADReal c1 = hllc_data.
fluid.c_from_v_e(v1, e1);
76 const ADReal v2 = 1.0 / rho2;
78 const ADReal E2 = e2 + 0.5 * u2 * u2;
79 const ADReal p2 = hllc_data.
fluid.p_from_v_e(v2, e2);
81 const ADReal c2 = hllc_data.
fluid.c_from_v_e(v2, e2);
86 const ADReal u_roe = (sqrt_rho1 * u1 + sqrt_rho2 * u2) / (sqrt_rho1 + sqrt_rho2);
87 const ADReal q_roe = (sqrt_rho1 * q1 + sqrt_rho2 * q2) / (sqrt_rho1 + sqrt_rho2);
88 const ADReal H_roe = (sqrt_rho1 *
H1 + sqrt_rho2 *
H2) / (sqrt_rho1 + sqrt_rho2);
89 const ADReal h_roe = H_roe - 0.5 * u_roe * u_roe;
91 const ADReal v_roe = 1.0 / rho_roe;
92 const ADReal e_roe = hllc_data.
fluid.e_from_v_h(v_roe, h_roe);
93 const ADReal c_roe = hllc_data.
fluid.c_from_v_e(v_roe, e_roe);
98 ADReal SM = (rho2 * q2 * (SR - q2) - rho1 * q1 * (SL - q1) + p1 - p2) /
99 (rho2 * (SR - q2) - rho1 * (SL - q1));
101 return {{std::move(SL), std::move(SM), std::move(SR)}};
static InputParameters validParams()
static const std::string total_energy_density
static std::array< ADReal, 3 > waveSpeed(const HLLCData &hllc_data, const ADRealVectorValue &normal)
helper function for computing wave speed
const ADMaterialProperty< Real > & _specific_internal_energy_elem
internal energies left == elem, right == neighbor
const ADReal & e_elem
internal energies left == elem, right == neighbor
auto norm() const -> decltype(std::norm(T()))
const ADRealVectorValue & vel_elem
velocities left == elem, right == neighbor
const ADReal & e_neighbor
static const std::string speed
const ADReal & rho_elem
densities left == elem, right == neighbor
const RealVectorValue & normal() const
CNSFVHLLCBase(const InputParameters ¶ms)
static const std::string density
static const std::string fluid
HLLCData hllcData() const
DualNumber< Real, DNDerivativeType, true > ADReal
const ADMaterialProperty< Real > & _specific_internal_energy_neighbor
static const std::string specific_internal_energy
auto max(const L &left, const R &right)
const ADMaterialProperty< Real > & _rho_neighbor
static InputParameters validParams()
const SinglePhaseFluidProperties & fluid
fluid properties
Common class for single phase fluid properties.
const ADReal & rho_neighbor
const ADMaterialProperty< RealVectorValue > & _vel_neighbor
const SinglePhaseFluidProperties & _fluid
fluid properties
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
CTSub CT_OPERATOR_BINARY CTMul CTCompareLess CTCompareGreater CTCompareEqual _arg template * sqrt(_arg)) *_arg.template D< dtag >()) CT_SIMPLE_UNARY_FUNCTION(tanh
static const std::string pressure
const ADRealVectorValue & vel_neighbor
static const std::string velocity
Helper structure for holding data necessary for computing HLLC fluxes.
const ADMaterialProperty< Real > & _rho_elem
densities left == elem, right == neighbor
auto min(const L &left, const R &right)
const ADMaterialProperty< RealVectorValue > & _vel_elem
velocities left == elem, right == neighbor