17#include "libmesh/quadrature.h"
29 "PorousFlowDictator",
"The UserObject that holds the list of PorousFlow variable names");
31 "Applies a source equal to the product of the mass flux and the "
32 "fluid enthalpy. The enthalpy is computed at temperature T_in and pressure equal to the "
33 "porepressure in the porous medium, if fluid_phase is given, otherwise at the supplied "
34 "porepressure. Hence this adds heat energy to the porous medium at rate corresponding to a "
35 "fluid being injected at (porepressure, T_in) at rate (-flux_function).");
43 _pressure(isCoupled(
"porepressure_var") ? &coupledValue(
"porepressure_var") : nullptr),
44 _ph(isParamValid(
"fluid_phase") ? getParam<unsigned
int>(
"fluid_phase")
46 _m_func(getFunction(
"flux_function")),
47 _pp(getMaterialProperty<
std::vector<Real>>(
"PorousFlow_porepressure_nodal")),
49 getMaterialProperty<
std::vector<
std::vector<Real>>>(
"dPorousFlow_porepressure_nodal_dvar")),
50 _T_in(getParam<Real>(
"T_in")),
54 mooseError(
name(),
": Cannot specify both pressure and pore pressure.");
57 mooseError(
name(),
": You have to specify either 'pressure' or 'fluid_phase'.");
62 ": Specified 'fluid_phase' is larger than the number of phases available in the "
110 Real h, dh_dpp, dh_dT;
registerMooseObject("PorousFlowApp", PorousFlowEnthalpySink)
void ErrorVector unsigned int
virtual Real value(Real t, const Point &p) const
const MooseArray< Point > & _q_point
static InputParameters validParams()
const VariableTestValue & _test
const std::string & name() const
void mooseError(Args &&... args) const
bool isParamValid(const std::string &name) const
unsigned int number() const
This holds maps between the nonlinear variables used in a PorousFlow simulation and the variable numb...
unsigned int numPhases() const
The number of fluid phases.
unsigned int porousFlowVariableNum(unsigned int moose_var_num) const
The PorousFlow variable number.
bool notPorousFlowVariable(unsigned int moose_var_num) const
Returns true if moose_var_num is not a porous flow variabe.
Applies a flux sink of heat energy to a boundary with specified mass flux and inlet temperature.
static InputParameters validParams()
const VariableValue * _pressure
Pressure (from aux variable)
const Real & _T_in
Specified inlet temperature.
const MaterialProperty< std::vector< Real > > & _pp
Computed nodal values of porepressure of the phases.
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
const PorousFlowDictator & _dictator
PorousFlowDictator UserObject.
Real jac(unsigned int jvar) const
Derivative of residual with respect to the jvar variable.
virtual Real computeQpJacobian() override
const MaterialProperty< std::vector< std::vector< Real > > > & _dpp_dvar
d(porepressure)/d(PorousFlow variable)
const SinglePhaseFluidProperties & _fp
Fluid properties UserObject.
const Function & _m_func
The mass flux.
const unsigned int _ph
The phase number.
virtual Real computeQpResidual() override
PorousFlowEnthalpySink(const InputParameters ¶meters)
static InputParameters validParamsCommon()
Common class for single phase fluid properties.
The following methods are specializations for using the Parallel::packed_range_* routines for a vecto...