21 "Gravitational acceleration vector downwards (m/s^2)");
23 "PorousFlowDictator",
"The UserObject that holds the list of PorousFlow variable names");
24 params.
addParam<
unsigned int>(
"fluid_phase", 0,
"The index corresponding to the fluid phase");
27 "component",
component,
"The spatial component of the Darcy flux to return");
28 params.
addClassDescription(
"Darcy velocity (in m^3.s^-1.m^-2, or m.s^-1) -(k_ij * krel /mu " 29 "(nabla_j P - w_j)), where k_ij is the permeability tensor, krel is " 30 "the relative permeability, mu is the fluid viscosity, P is the fluid " 31 "pressure, and w_j is the fluid weight.");
39 _relative_permeability(getGenericMaterialProperty<
std::vector<
Real>, is_ad>(
40 "PorousFlow_relative_permeability_qp")),
42 getGenericMaterialProperty<
std::vector<
Real>, is_ad>(
"PorousFlow_viscosity_qp")),
43 _permeability(getGenericMaterialProperty<
RealTensorValue, is_ad>(
"PorousFlow_permeability_qp")),
45 "PorousFlow_grad_porepressure_qp")),
47 getGenericMaterialProperty<
std::vector<
Real>, is_ad>(
"PorousFlow_fluid_phase_density_qp")),
49 _ph(getParam<unsigned
int>(
"fluid_phase")),
50 _component(getParam<
MooseEnum>(
"component")),
55 "The Dictator proclaims that the maximum phase index in this simulation is ",
57 " whereas you have used ",
59 ". Remember that indexing starts at 0. The Dictator is watching you, to " 60 "ensure your wellbeing.");
68 (_permeability[_qp] * (_grad_p[_qp][_ph] - _fluid_density_qp[_qp][_ph] * _gravity) *
69 _relative_permeability[_qp][_ph] / _fluid_viscosity[_qp][_ph])(_component));
static const std::string component
virtual Real computeValue()
PorousFlowDarcyVelocityComponentTempl(const InputParameters ¶meters)
registerMooseObject("PorousFlowApp", PorousFlowDarcyVelocityComponent)
const unsigned int _ph
Index of the fluid phase.
TensorValue< Real > RealTensorValue
Computes a component of the Darcy velocity: -k_ij * krel /mu (nabla_j P - w_j) where k_ij is the perm...
void paramError(const std::string ¶m, Args... args) const
unsigned int numPhases() const
The number of fluid phases.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static InputParameters validParams()
This holds maps between the nonlinear variables used in a PorousFlow simulation and the variable numb...
static InputParameters validParams()
const PorousFlowDictator & _dictator
PorousFlowDicatator UserObject.
void ErrorVector unsigned int