Material designed to form a std::vector of mass fractions of mineral concentrations from primary-species concentrations for an equilibrium precipitation-dissolution chemistry reaction system. More...
#include <PorousFlowAqueousPreDisChemistry.h>
Public Member Functions | |
PorousFlowAqueousPreDisChemistry (const InputParameters ¶meters) | |
Protected Member Functions | |
void | initQpStatefulProperties () override |
void | computeQpProperties () override |
Real | stoichiometry (unsigned reaction_num, unsigned primary_num) const |
The stoichiometric coefficient. More... | |
virtual void | computeQpReactionRates () |
Compute the secondary-species concentration as defined by the chemistry Must be overridden by derived classes. More... | |
void | findZeroConcentration (unsigned &zero_conc_index, unsigned &zero_count) const |
Checks gamp[i] = _primary_activity_coefficients[i] * (*_primary[i])[qp]. More... | |
virtual void | dQpReactionRate_dprimary (unsigned reaction_num, std::vector< Real > &drr) const |
Computes derivative of the reaction rate with respect to the primary concentrations. More... | |
virtual Real | dQpReactionRate_dT (unsigned reaction_num) const |
Computes derivative of the reaction rate with respect to the temperature. More... | |
Real | rateConstantQp (unsigned reaction_num) const |
Protected Attributes | |
const MaterialProperty< Real > & | _porosity_old |
Old values of the porosity. More... | |
const unsigned int | _aq_ph |
Aqueous phase number. More... | |
const MaterialProperty< std::vector< Real > > & | _saturation |
Saturation. More... | |
const MaterialProperty< Real > & | _temperature |
Temperature. More... | |
const MaterialProperty< std::vector< Real > > & | _dtemperature_dvar |
d(temperature)/(d porflow variable) More... | |
const unsigned int | _num_primary |
Number of primary species. More... | |
const unsigned int | _num_reactions |
Number of equations in the aqueous geochemistry system. More... | |
const bool | _equilibrium_constants_as_log10 |
Whether the equilibium constants are written in their log10 form, or in absolute terms. More... | |
const unsigned | _num_equilibrium_constants |
Number of equilibrium_constants provided. More... | |
std::vector< const VariableValue * > | _equilibrium_constants |
Equilibrium constants (dimensionless) More... | |
const std::vector< Real > | _primary_activity_coefficients |
Activity coefficients for the primary species (dimensionless) More... | |
const std::vector< Real > | _reactions |
Stoichiometry defining the aqeuous geochemistry equilibrium reactions. More... | |
std::vector< unsigned int > | _primary_var_num |
The variable number of the primary variables. More... | |
std::vector< const VariableValue * > | _primary |
Values of the primary species' concentrations (dimensionless) More... | |
const MaterialProperty< std::vector< Real > > & | _sec_conc_old |
std::vector< Real > | _mineral_sat |
Mineral saturation ratio - a useful temporary variable during computeQpProperties. More... | |
std::vector< bool > | _bounded_rate |
Whether the reaction rate has to be bounded in order that the precipitate stays inside [0, 1]. More... | |
MaterialProperty< std::vector< Real > > & | _reaction_rate |
Reaction rate of mineralisation. More... | |
MaterialProperty< std::vector< std::vector< Real > > > & | _dreaction_rate_dvar |
d(reaction rate of mineralisation)/d(porous flow var) More... | |
const std::vector< Real > | _r_area |
Reactive surface area (m^2/L) for each reaction. More... | |
const std::vector< Real > | _molar_volume |
Molar volume (L/mol) for each secondary species. More... | |
const std::vector< Real > | _ref_kconst |
Rate constant (mol/(m^2 s)) at reference temperature for each reaction. More... | |
const std::vector< Real > | _e_act |
Activation energy (J/mol) for each reaction. More... | |
const Real | _gas_const |
Gas constant (J/(mol K)) More... | |
const Real | _one_over_ref_temp |
1/reference_temperature (1/K) More... | |
const std::vector< Real > | _theta_exponent |
Theta exponent for the precipitation-dissolution for each reaction. More... | |
const std::vector< Real > | _eta_exponent |
Eta exponent for the precipitation-dissolution for each reaction. More... | |
std::vector< const VariableValue * > | _initial_conc |
Initial values of the secondary species concentrations. More... | |
const unsigned int | _num_phases |
Number of phases. More... | |
const unsigned int | _num_components |
Number of fluid components. More... | |
const unsigned int | _num_var |
Number of PorousFlow variables. More... | |
Material designed to form a std::vector of mass fractions of mineral concentrations from primary-species concentrations for an equilibrium precipitation-dissolution chemistry reaction system.
Definition at line 24 of file PorousFlowAqueousPreDisChemistry.h.
PorousFlowAqueousPreDisChemistry::PorousFlowAqueousPreDisChemistry | ( | const InputParameters & | parameters | ) |
Definition at line 70 of file PorousFlowAqueousPreDisChemistry.C.
|
overrideprotected |
Definition at line 235 of file PorousFlowAqueousPreDisChemistry.C.
|
protectedvirtual |
Compute the secondary-species concentration as defined by the chemistry Must be overridden by derived classes.
Definition at line 299 of file PorousFlowAqueousPreDisChemistry.C.
Referenced by computeQpProperties().
|
protectedvirtual |
Computes derivative of the reaction rate with respect to the primary concentrations.
reaction_num | The reaction number corresponding to the secondary-species concentration |
drr | drr[i] = d(reactionRate[reaction_num])/d(primary_species[i]) |
Definition at line 365 of file PorousFlowAqueousPreDisChemistry.C.
Referenced by computeQpProperties().
|
protectedvirtual |
Computes derivative of the reaction rate with respect to the temperature.
reaction_num | The reaction number corresponding to the secondary-species concentration |
Definition at line 450 of file PorousFlowAqueousPreDisChemistry.C.
Referenced by computeQpProperties().
|
protected |
Checks gamp[i] = _primary_activity_coefficients[i] * (*_primary[i])[qp].
Returns: if all of these are positive, then zero_count = 0, zero_conc_index = 0 if one of these is zero, then zero_count = 1, zero_conc_index = the index of the zero gamp if more than one is zero, then zero_count = 2, and zero_conc_index is the index of the 2nd zero
Definition at line 281 of file PorousFlowAqueousPreDisChemistry.C.
Referenced by dQpReactionRate_dprimary().
|
overrideprotected |
Definition at line 226 of file PorousFlowAqueousPreDisChemistry.C.
|
protected |
Definition at line 443 of file PorousFlowAqueousPreDisChemistry.C.
Referenced by computeQpReactionRates(), dQpReactionRate_dprimary(), and dQpReactionRate_dT().
|
protected |
The stoichiometric coefficient.
reaction_num | Reaction number (0, ..., _num_reactions - 1) |
primary_num | The number of the primary species (0, ..., _num_primary - 1) |
Definition at line 274 of file PorousFlowAqueousPreDisChemistry.C.
Referenced by computeQpReactionRates(), and dQpReactionRate_dprimary().
|
protected |
Aqueous phase number.
Definition at line 74 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by computeQpReactionRates().
|
protected |
Whether the reaction rate has to be bounded in order that the precipitate stays inside [0, 1].
Definition at line 119 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by computeQpReactionRates(), dQpReactionRate_dprimary(), and dQpReactionRate_dT().
|
protected |
d(reaction rate of mineralisation)/d(porous flow var)
Definition at line 125 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by computeQpProperties(), and initQpStatefulProperties().
|
protected |
d(temperature)/(d porflow variable)
Definition at line 83 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by computeQpProperties().
|
protected |
Activation energy (J/mol) for each reaction.
Definition at line 137 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by dQpReactionRate_dT(), PorousFlowAqueousPreDisChemistry(), and rateConstantQp().
|
protected |
Equilibrium constants (dimensionless)
Definition at line 98 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by computeQpReactionRates(), dQpReactionRate_dprimary(), and PorousFlowAqueousPreDisChemistry().
|
protected |
Whether the equilibium constants are written in their log10 form, or in absolute terms.
Definition at line 92 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by computeQpReactionRates(), and dQpReactionRate_dprimary().
|
protected |
Eta exponent for the precipitation-dissolution for each reaction.
Definition at line 149 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by computeQpReactionRates(), dQpReactionRate_dprimary(), dQpReactionRate_dT(), and PorousFlowAqueousPreDisChemistry().
|
protected |
Gas constant (J/(mol K))
Definition at line 140 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by dQpReactionRate_dT(), and rateConstantQp().
|
protected |
Initial values of the secondary species concentrations.
Definition at line 152 of file PorousFlowAqueousPreDisChemistry.h.
|
protected |
Mineral saturation ratio - a useful temporary variable during computeQpProperties.
Definition at line 116 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by computeQpReactionRates(), dQpReactionRate_dprimary(), and dQpReactionRate_dT().
|
protected |
Molar volume (L/mol) for each secondary species.
Definition at line 131 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by computeQpReactionRates(), dQpReactionRate_dprimary(), dQpReactionRate_dT(), and PorousFlowAqueousPreDisChemistry().
|
protectedinherited |
Number of fluid components.
Definition at line 33 of file PorousFlowMaterialVectorBase.h.
Referenced by PorousFlowDiffusivityBase::computeQpProperties(), PorousFlowMassFractionAqueousEquilibriumChemistry::computeQpProperties(), PorousFlowMassFraction::computeQpProperties(), PorousFlowAqueousPreDisChemistry(), PorousFlowDiffusivityBase::PorousFlowDiffusivityBase(), and PorousFlowMassFraction::PorousFlowMassFraction().
|
protected |
Number of equilibrium_constants provided.
Definition at line 95 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by PorousFlowAqueousPreDisChemistry().
|
protectedinherited |
Number of phases.
Definition at line 30 of file PorousFlowMaterialVectorBase.h.
Referenced by PorousFlowDiffusivityBase::computeQpProperties(), PorousFlowDiffusivityMillingtonQuirk::computeQpProperties(), PorousFlowEffectiveFluidPressure::computeQpProperties(), PorousFlowMassFraction::computeQpProperties(), PorousFlowJoiner::computeQpProperties(), PorousFlowEffectiveFluidPressure::initQpStatefulProperties(), PorousFlowJoiner::initQpStatefulProperties(), PorousFlowDiffusivityBase::PorousFlowDiffusivityBase(), PorousFlowDiffusivityConst::PorousFlowDiffusivityConst(), PorousFlowJoiner::PorousFlowJoiner(), PorousFlowMassFraction::PorousFlowMassFraction(), PorousFlowThermalConductivityFromPorosity::PorousFlowThermalConductivityFromPorosity(), PorousFlowThermalConductivityIdeal::PorousFlowThermalConductivityIdeal(), and PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity::PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity().
|
protected |
Number of primary species.
Definition at line 86 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by computeQpProperties(), computeQpReactionRates(), dQpReactionRate_dprimary(), findZeroConcentration(), PorousFlowAqueousPreDisChemistry(), and stoichiometry().
|
protected |
Number of equations in the aqueous geochemistry system.
Definition at line 89 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by computeQpProperties(), computeQpReactionRates(), initQpStatefulProperties(), and PorousFlowAqueousPreDisChemistry().
|
protectedinherited |
Number of PorousFlow variables.
Definition at line 36 of file PorousFlowMaterialVectorBase.h.
Referenced by PorousFlowDiffusivityBase::computeQpProperties(), PorousFlowPermeabilityConst::computeQpProperties(), PorousFlowVolumetricStrain::computeQpProperties(), PorousFlowDiffusivityMillingtonQuirk::computeQpProperties(), computeQpProperties(), PorousFlowMassFractionAqueousEquilibriumChemistry::computeQpProperties(), PorousFlowThermalConductivityIdeal::computeQpProperties(), PorousFlowEffectiveFluidPressure::computeQpProperties(), PorousFlowPermeabilityTensorFromVar::computeQpProperties(), PorousFlowPorosityConst::computeQpProperties(), PorousFlowThermalConductivityFromPorosity::computeQpProperties(), PorousFlowMatrixInternalEnergy::computeQpProperties(), PorousFlowPorosityHMBiotModulus::computeQpProperties(), PorousFlowPermeabilityConstFromVar::computeQpProperties(), PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity::computeQpProperties(), PorousFlowPermeabilityExponential::computeQpProperties(), PorousFlowPermeabilityKozenyCarman::computeQpProperties(), PorousFlowMassFraction::computeQpProperties(), PorousFlowJoiner::computeQpProperties(), PorousFlowPorosityExponentialBase::computeQpProperties(), and initQpStatefulProperties().
|
protected |
1/reference_temperature (1/K)
Definition at line 143 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by rateConstantQp().
|
protected |
Old values of the porosity.
Definition at line 71 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by computeQpReactionRates().
|
protected |
Values of the primary species' concentrations (dimensionless)
Definition at line 110 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by computeQpReactionRates(), dQpReactionRate_dprimary(), findZeroConcentration(), and PorousFlowAqueousPreDisChemistry().
|
protected |
Activity coefficients for the primary species (dimensionless)
Definition at line 101 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by computeQpReactionRates(), dQpReactionRate_dprimary(), findZeroConcentration(), and PorousFlowAqueousPreDisChemistry().
|
protected |
The variable number of the primary variables.
Definition at line 107 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by computeQpProperties(), and PorousFlowAqueousPreDisChemistry().
|
protected |
Reactive surface area (m^2/L) for each reaction.
Definition at line 128 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by computeQpReactionRates(), dQpReactionRate_dprimary(), dQpReactionRate_dT(), and PorousFlowAqueousPreDisChemistry().
|
protected |
Reaction rate of mineralisation.
Definition at line 122 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by computeQpProperties(), computeQpReactionRates(), and initQpStatefulProperties().
|
protected |
Stoichiometry defining the aqeuous geochemistry equilibrium reactions.
Definition at line 104 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by PorousFlowAqueousPreDisChemistry(), and stoichiometry().
|
protected |
Rate constant (mol/(m^2 s)) at reference temperature for each reaction.
Definition at line 134 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by PorousFlowAqueousPreDisChemistry(), and rateConstantQp().
|
protected |
Saturation.
Definition at line 77 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by computeQpReactionRates().
|
protected |
Definition at line 113 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by computeQpReactionRates().
|
protected |
Temperature.
Definition at line 80 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by dQpReactionRate_dT(), and rateConstantQp().
|
protected |
Theta exponent for the precipitation-dissolution for each reaction.
Definition at line 146 of file PorousFlowAqueousPreDisChemistry.h.
Referenced by computeQpReactionRates(), dQpReactionRate_dprimary(), dQpReactionRate_dT(), and PorousFlowAqueousPreDisChemistry().