19 "Initial concentrations for the mineral species " 20 "(m^{3}(precipitate)/m^{3}(porous material)). Default = 0");
23 "(volume-of-mineral/volume-of-material) appropriate to the aqueous " 24 "precipitation-dissolution system provided.");
30 _num_reactions(_dictator.numAqueousKinetic()),
31 _aq_ph(_dictator.aqueousPhaseNumber()),
32 _saturation(_nodal_material
33 ? getMaterialProperty<
std::vector<
Real>>(
"PorousFlow_saturation_nodal")
34 : getMaterialProperty<
std::vector<
Real>>(
"PorousFlow_saturation_qp")),
35 _sec_conc(_nodal_material
36 ? declareProperty<
std::vector<
Real>>(
"PorousFlow_mineral_concentration_nodal")
37 : declareProperty<
std::vector<
Real>>(
"PorousFlow_mineral_concentration_qp")),
39 _porosity_old(_nodal_material ? getMaterialPropertyOld<
Real>(
"PorousFlow_porosity_nodal")
40 : getMaterialPropertyOld<
Real>(
"PorousFlow_porosity_qp")),
43 ? getMaterialPropertyOld<
std::vector<
Real>>(
"PorousFlow_mineral_concentration_nodal")
44 : getMaterialPropertyOld<
std::vector<
Real>>(
"PorousFlow_mineral_concentration_qp")),
47 ? getMaterialProperty<
std::vector<
Real>>(
"PorousFlow_mineral_reaction_rate_nodal")
48 : getMaterialProperty<
std::vector<
Real>>(
"PorousFlow_mineral_reaction_rate_qp")),
50 _initial_conc_supplied(isParamValid(
"initial_concentrations")),
51 _num_initial_conc(_initial_conc_supplied ? coupledComponents(
"initial_concentrations")
60 mooseError(
"PorousFlowAqueousPreDisMineral: The number of initial concentrations is ",
62 " but the Dictator knows that the number of aqueous kinetic " 63 "(precipitation-dissolution) reactions is ",
64 _dictator.numAqueousKinetic());
72 const bool is_nodal = isCoupled(
"initial_concentrations")
73 ? getFieldVar(
"initial_concentrations", r)->isNodal()
77 (_nodal_material && is_nodal ? &coupledDofValues(
"initial_concentrations", r)
78 : &coupledValue(
"initial_concentrations", r));
std::vector< const VariableValue * > _initial_conc
Initial values of the secondary species concentrations.
const unsigned int _aq_ph
Aqueous phase number.
void mooseError(Args &&... args)
static InputParameters validParams()
static InputParameters validParams()
const MaterialProperty< Real > & _porosity_old
Porosity.
const bool _initial_conc_supplied
Whether the initial values of the secondary species concentrations have been supplied by the user...
void initQpStatefulProperties() override
const MaterialProperty< std::vector< Real > > & _saturation
Saturation.
virtual void resize(const std::size_t size) override final
MaterialProperty< std::vector< Real > > & _sec_conc
Mineral concentrations at quadpoint or nodes.
registerMooseObject("PorousFlowApp", PorousFlowAqueousPreDisMineral)
const unsigned _num_initial_conc
Number of secondary species concentrations supplied by the user.
Base class for all PorousFlow vector materials.
PorousFlowAqueousPreDisMineral(const InputParameters ¶meters)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void computeQpProperties() override
const MaterialProperty< std::vector< Real > > & _reaction_rate
Reaction rate of mineralisation.
const unsigned int _num_reactions
Number of equations in the aqueous geochemistry system.
Material designed to form a std::vector of mass fractions of mineral concentrations from reaction rat...
const MaterialProperty< std::vector< Real > > & _sec_conc_old
Old values of the mineral species concentrations.