19 params.addCoupledVar(
"initial_concentrations",
20 "Initial concentrations for the mineral species "
21 "(m^{3}(precipitate)/m^{3}(porous material)). Default = 0");
22 params.addPrivateParam<std::string>(
"pf_material_type",
"mineral");
23 params.addClassDescription(
"This Material forms a std::vector of mineral concentrations "
24 "(volume-of-mineral/volume-of-material) appropriate to the aqueous "
25 "precipitation-dissolution system provided.");
31 _num_reactions(_dictator.numAqueousKinetic()),
32 _aq_ph(_dictator.aqueousPhaseNumber()),
33 _saturation(_nodal_material
34 ? getMaterialProperty<std::vector<Real>>(
"PorousFlow_saturation_nodal")
35 : getMaterialProperty<std::vector<Real>>(
"PorousFlow_saturation_qp")),
36 _sec_conc(_nodal_material
37 ? declareProperty<std::vector<Real>>(
"PorousFlow_mineral_concentration_nodal")
38 : declareProperty<std::vector<Real>>(
"PorousFlow_mineral_concentration_qp")),
40 _porosity_old(_nodal_material ? getMaterialPropertyOld<Real>(
"PorousFlow_porosity_nodal")
41 : getMaterialPropertyOld<Real>(
"PorousFlow_porosity_qp")),
44 ? getMaterialPropertyOld<std::vector<Real>>(
"PorousFlow_mineral_concentration_nodal")
45 : getMaterialPropertyOld<std::vector<Real>>(
"PorousFlow_mineral_concentration_qp")),
48 ? getMaterialProperty<std::vector<Real>>(
"PorousFlow_mineral_reaction_rate_nodal")
49 : getMaterialProperty<std::vector<Real>>(
"PorousFlow_mineral_reaction_rate_qp")),
51 _initial_conc_supplied(isParamValid(
"initial_concentrations")),
52 _num_initial_conc(_initial_conc_supplied ? coupledComponents(
"initial_concentrations")
61 mooseError(
"PorousFlowAqueousPreDisMineral: The number of initial concentrations is ",
63 " but the Dictator knows that the number of aqueous kinetic "
64 "(precipitation-dissolution) reactions is ",
65 _dictator.numAqueousKinetic());
70 _initial_conc[r] = (_nodal_material ? &coupledDofValues(
"initial_concentrations", r)
71 : &coupledValue(
"initial_concentrations", r));