20 "Density (kg(precipitate)/m^3(precipitate)) of each secondary species in the " 21 "aqueous precipitation-dissolution reaction system");
23 "PorousFlowDictator",
"The UserObject that holds the list of PorousFlow variable names.");
25 "A vector of stoichiometric coefficients for the " 26 "primary species that is the Variable of this Kernel: " 27 "one for each precipitation-dissolution reaction " 28 "(these are one columns of the 'reactions' matrix)");
35 _mineral_density(getParam<
std::vector<
Real>>(
"mineral_density")),
37 _aq_ph(_dictator.aqueousPhaseNumber()),
38 _porosity_old(getMaterialPropertyOld<
Real>(
"PorousFlow_porosity_nodal")),
39 _saturation(getMaterialProperty<
std::vector<
Real>>(
"PorousFlow_saturation_nodal")),
41 getMaterialProperty<
std::vector<
std::vector<
Real>>>(
"dPorousFlow_saturation_nodal_dvar")),
43 getMaterialProperty<
std::vector<
Real>>(
"PorousFlow_mineral_reaction_rate_nodal")),
44 _dreaction_rate_dvar(getMaterialProperty<
std::vector<
std::vector<
Real>>>(
45 "dPorousFlow_mineral_reaction_rate_nodal_dvar")),
46 _stoichiometry(getParam<
std::vector<
Real>>(
"stoichiometry"))
55 "The Dictator proclaims that the number of precipitation-dissolution secondary " 56 "species in this simulation is ",
58 " whereas you have provided ",
60 ". The Dictator does not take such mistakes lightly");
64 "The Dictator proclaims that the number of precipitation-dissolution secondary " 65 "species in this simulation is ",
67 " whereas you have provided ",
69 ". The Dictator does not take such mistakes lightly");
const std::vector< Real > _stoichiometry
Stoichiometric coefficients.
const MaterialProperty< Real > & _porosity_old
Old value of porosity.
bool notPorousFlowVariable(unsigned int moose_var_num) const
Returns true if moose_var_num is not a porous flow variabe.
const MaterialProperty< std::vector< Real > > & _saturation
Saturation.
unsigned int number() const
const PorousFlowDictator & _dictator
PorousFlowDictator UserObject.
const std::vector< Real > _mineral_density
Density of the mineral species.
PorousFlowPreDis(const InputParameters ¶meters)
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
virtual Real computeQpJacobian() override
Real computeQpJac(unsigned int pvar)
Derivative of residual with respect to PorousFlow variable number pvar This is used by both computeQp...
static InputParameters validParams()
const unsigned int _aq_ph
Aqueous phase number.
const VariableTestValue & _test
const MaterialProperty< std::vector< Real > > & _reaction_rate
Reaction rate of the yielding the secondary species.
const MaterialProperty< std::vector< std::vector< Real > > > & _dsaturation_dvar
d(saturation)/d(PorousFlow var)
Kernel = sum (stoichiometry * density * porosity_old * saturation * reaction_rate) where the sum is o...
void paramError(const std::string ¶m, Args... args) const
unsigned int numAqueousKinetic() const
The number of aqueous kinetic secondary species.
registerMooseObject("PorousFlowApp", PorousFlowPreDis)
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 MaterialProperty< std::vector< std::vector< Real > > > & _dreaction_rate_dvar
d(reaction rate)/d(porflow variable)
unsigned int porousFlowVariableNum(unsigned int moose_var_num) const
The PorousFlow variable number.
virtual Real computeQpResidual() override
static InputParameters validParams()