16#include "libmesh/elem.h"
28std::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);
49 for (
const auto i : make_range(n_passives))
63std::vector<GenericReal<is_ad>>
75 const ADReal E = e + 0.5 * vel * vel;
82 for (
const auto i : make_range(n_passives))
96std::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;
114 for (
const auto i : make_range(n_passives))
128std::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);
DualNumber< Real, DNDerivativeType, true > ADReal
Moose::GenericType< Real, is_ad > GenericReal
Common class for single phase fluid properties.
std::vector< GenericReal< is_ad > > getElementalSolutionVector(const Elem *elem, const std::vector< MooseVariable * > &U_vars, bool is_implicit)
Gets the elemental conservative solution vector.
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.
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.
void derivInsert(SemiDynamicSparseNumberArray< Real, libMesh::dof_id_type, NWrapper< N > > &derivs, libMesh::dof_id_type index, Real value)
static const unsigned int N_FLUX_OUTPUTS
Number of numerical flux function outputs for 1D.
static const unsigned int N_PRIM_VARS
static const unsigned int N_FLUX_INPUTS
Number of numerical flux function inputs for 1D.