20 "The PorousFlowDictator UserObject");
21 params.
addParam<
unsigned int>(
"fluid_component", 0,
"The fluid component for this kernel");
29 _num_phases(_dictator.numPhases()),
30 _fluid_component(getParam<unsigned
int>(
"fluid_component")),
31 _porosity(getADMaterialProperty<
Real>(
"PorousFlow_porosity_qp")),
32 _porosity_old(getMaterialPropertyOld<
Real>(
"PorousFlow_porosity_qp")),
33 _density(getADMaterialProperty<
std::vector<
Real>>(
"PorousFlow_fluid_phase_density_qp")),
34 _density_old(getMaterialPropertyOld<
std::vector<
Real>>(
"PorousFlow_fluid_phase_density_qp")),
35 _saturation(getADMaterialProperty<
std::vector<
Real>>(
"PorousFlow_saturation_qp")),
36 _saturation_old(getMaterialPropertyOld<
std::vector<
Real>>(
"PorousFlow_saturation_qp")),
38 getADMaterialProperty<
std::vector<
std::vector<
Real>>>(
"PorousFlow_mass_frac_qp")),
40 getMaterialPropertyOld<
std::vector<
std::vector<
Real>>>(
"PorousFlow_mass_frac_qp"))
45 "The Dictator proclaims that the maximum fluid component index in this simulation is ",
47 " whereas you have used ",
49 ". Remember that indexing starts at 0. The Dictator does not take such mistakes lightly.");
ADReal computeQpResidual() override
const ADMaterialProperty< std::vector< Real > > & _saturation
Fluid phase saturation.
const MaterialProperty< std::vector< Real > > & _density_old
const ADMaterialProperty< std::vector< std::vector< Real > > > & _mass_fractions
Mass fraction of fluid components in fluid phases.
static InputParameters validParams()
const unsigned int _fluid_component
Index of the fluid component this kernel applies to.
unsigned int numComponents() const
The number of fluid components.
DualNumber< Real, DNDerivativeType, true > ADReal
registerADMooseObject("PorousFlowApp", FVPorousFlowMassTimeDerivative)
const MaterialProperty< std::vector< std::vector< Real > > > & _mass_fractions_old
Time derivative of fluid mass.
const ADMaterialProperty< Real > & _porosity
Porosity.
void paramError(const std::string ¶m, Args... args) const
const ADMaterialProperty< std::vector< Real > > & _density
Fluid density.
const MaterialProperty< std::vector< Real > > & _saturation_old
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...
const unsigned int _num_phases
Number of fluid phases present.
IntRange< T > make_range(T beg, T end)
const MaterialProperty< Real > & _porosity_old
static InputParameters validParams()
const PorousFlowDictator & _dictator
UserObject that holds information (number of phases, components, etc)
FVPorousFlowMassTimeDerivative(const InputParameters ¶meters)
void ErrorVector unsigned int