16 #include "libmesh/elem.h" 28 std::vector<GenericReal<is_ad>>
38 const auto rho = rhoA /
A;
39 const auto vel = rhouA / rhoA;
40 const auto v = 1.0 /
rho;
41 const auto e = rhoEA / rhoA - 0.5 * vel * vel;
42 const auto p =
fp.p_from_v_e(
v, e);
43 const auto T =
fp.T_from_v_e(
v, e);
63 std::vector<GenericReal<is_ad>>
75 const ADReal E = e + 0.5 * vel * vel;
96 std::vector<GenericReal<is_ad>>
106 const auto rho =
fp.rho_from_p_T(
p,
T);
107 const auto e =
fp.e_from_p_rho(
p,
rho);
108 const auto E = e + 0.5 * vel * vel;
127 template <
bool is_ad>
128 std::vector<GenericReal<is_ad>>
130 const std::vector<MooseVariable *> & U_vars,
133 mooseAssert(elem,
"The supplied element is a nullptr.");
135 std::vector<GenericReal<is_ad>> U(U_vars.size(), 0.0);
139 for (
const auto i :
make_range(U_vars.size()))
141 mooseAssert(U_vars[i],
"The supplied variable is a nullptr.");
142 U[i] = U_vars[i]->getElementalValue(elem);
146 std::vector<dof_id_type> dof_indices;
147 U_vars[i]->dofMap().dof_indices(elem, dof_indices, U_vars[i]->number());
154 for (
const auto i :
make_range(U_vars.size()))
155 U[i] = U_vars[i]->getElementalValueOld(elem);
Moose::GenericType< Real, is_ad > GenericReal
std::vector< GenericReal< is_ad > > computeConservativeSolutionVector(const std::vector< GenericReal< is_ad >> &W, const GenericReal< is_ad > &A, const SinglePhaseFluidProperties &fp)
Computes the conservative solution vector from the primitive solution vector.
std::vector< GenericReal< is_ad > > computeFluxFromPrimitive(const std::vector< GenericReal< is_ad >> &W, const GenericReal< is_ad > &A, const SinglePhaseFluidProperties &fp)
Computes the numerical flux vector from the primitive solution vector.
static const std::string F
std::vector< GenericReal< is_ad > > computePrimitiveSolutionVector(const std::vector< GenericReal< is_ad >> &U, const SinglePhaseFluidProperties &fp)
Computes the primitive solution vector from the conservative solution vector.
Common class for single phase fluid properties.
static const unsigned int N_FLUX_INPUTS
Number of numerical flux function inputs for 1D.
std::vector< GenericReal< is_ad > > getElementalSolutionVector(const Elem *elem, const std::vector< MooseVariable *> &U_vars, bool is_implicit)
Gets the elemental conservative solution vector.
static const unsigned int N_FLUX_OUTPUTS
Number of numerical flux function outputs for 1D.
static const unsigned int N_PRIM_VARS
IntRange< T > make_range(T beg, T end)
void derivInsert(SemiDynamicSparseNumberArray< Real, libMesh::dof_id_type, NWrapper< N >> &derivs, libMesh::dof_id_type index, Real value)