21 "fluid_component", 0,
"The index corresponding to the fluid component for this kernel");
23 "Darcy flux suitable for models involving a fully-saturated single phase, multi-component " 24 "fluid. No upwinding is used.");
32 _mfrac(this->template getGenericMaterialProperty<
std::vector<
std::vector<
Real>>, is_ad>(
33 "PorousFlow_mass_frac_qp")),
36 : &this->template getMaterialProperty<
std::vector<
std::vector<
std::vector<
Real>>>>(
37 "dPorousFlow_mass_frac_qp_dvar")),
38 _fluid_component(this->template getParam<unsigned
int>(
"fluid_component"))
43 "The Dictator proclaims that the maximum fluid component index in this simulation is ",
45 " whereas you have used ",
47 ". Remember that indexing starts at 0. Happiness equals perfection.");
54 const unsigned ph = 0;
55 return _mfrac[_qp][ph][_fluid_component] *
65 const unsigned ph = 0;
68 return (*_dmfrac_dvar)[_qp][ph][_fluid_component][pvar] * darcy_mob +
69 _mfrac[_qp][ph][_fluid_component] * ddarcy_mob;
Moose::GenericType< Real, is_ad > GenericReal
const unsigned int _fluid_component
Fluid component index for this kernel.
virtual GenericReal< is_ad > mobility() const override
Fluid mobility = (density *) 1/viscosity. Virtual so DarcyFlow can multiply by mass frac...
void paramError(const std::string ¶m, Args... args) const
unsigned int numComponents() const
The number of fluid components.
virtual Real dmobility(unsigned int pvar) const
d(mobility)/d(PorousFlow variable pvar) – only used on the non-AD path
static InputParameters validParams()
virtual GenericReal< is_ad > mobility() const
Fluid mobility = (density *) 1/viscosity. Virtual so DarcyFlow can multiply by mass frac...
void libmesh_ignore(const Args &...)
static InputParameters validParams()
Darcy advective flux for a fully-saturated, single-phase, single-component fluid. ...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
registerMooseObject("PorousFlowApp", PorousFlowFullySaturatedDarcyFlow)
virtual Real dmobility(unsigned int pvar) const override
d(mobility)/d(PorousFlow variable pvar) – only used on the non-AD path
const PorousFlowDictator & _dictator
PorousFlowDictator UserObject.
Darcy advective flux for a fully-saturated, single-phase, multi-component fluid.
PorousFlowFullySaturatedDarcyFlowTempl(const InputParameters ¶meters)
void ErrorVector unsigned int