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;
const VariableTestValue & _test
static InputParameters validParams()
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
virtual Real computeQpJacobian() override
bool notPorousFlowVariable(unsigned int moose_var_num) const
Returns true if moose_var_num is not a porous flow variabe.
const unsigned int invalid_uint
unsigned int number() const
static InputParameters validParamsCommon()
PorousFlowEnthalpySink(const InputParameters ¶meters)
static InputParameters validParams()
The following methods are specializations for using the Parallel::packed_range_* routines for a vecto...
virtual const std::string & name() const
virtual Real computeQpResidual() override
const Real & _T_in
Specified inlet temperature.
bool isParamValid(const std::string &name) const
const SinglePhaseFluidProperties & _fp
Fluid properties UserObject.
const MooseArray< Point > & _q_point
const VariableValue * _pressure
Pressure (from aux variable)
Common class for single phase fluid properties.
const MaterialProperty< std::vector< Real > > & _pp
Computed nodal values of porepressure of the phases.
const unsigned int _ph
The phase number.
unsigned int numPhases() const
The number of fluid phases.
Real jac(unsigned int jvar) const
Derivative of residual with respect to the jvar variable.
Applies a flux sink of heat energy to a boundary with specified mass flux and inlet temperature...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
This holds maps between the nonlinear variables used in a PorousFlow simulation and the variable numb...
void mooseError(Args &&... args) const
const Function & _m_func
The mass flux.
unsigned int porousFlowVariableNum(unsigned int moose_var_num) const
The PorousFlow variable number.
const MaterialProperty< std::vector< std::vector< Real > > > & _dpp_dvar
d(porepressure)/d(PorousFlow variable)
virtual Real value(Real t, const Point &p) const
registerMooseObject("PorousFlowApp", PorousFlowEnthalpySink)
void ErrorVector unsigned int
const PorousFlowDictator & _dictator
PorousFlowDictator UserObject.