https://mooseframework.inl.gov
PorousFlowAqueousPreDisChemistry.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
13 
20 {
21 public:
23 
25 
26 protected:
27  void initQpStatefulProperties() override;
28  void computeQpProperties() override;
34  Real stoichiometry(unsigned reaction_num, unsigned primary_num) const;
35 
40  virtual void computeQpReactionRates();
41 
50  void findZeroConcentration(unsigned & zero_conc_index, unsigned & zero_count) const;
51 
57  virtual void dQpReactionRate_dprimary(unsigned reaction_num, std::vector<Real> & drr) const;
58 
63  virtual Real dQpReactionRate_dT(unsigned reaction_num) const;
64 
65  Real rateConstantQp(unsigned reaction_num) const;
66 
69 
71  const unsigned int _aq_ph;
72 
75 
78 
81 
83  const unsigned int _num_primary;
84 
86  const unsigned int _num_reactions;
87 
90 
93 
95  std::vector<const VariableValue *> _equilibrium_constants;
96 
98  const std::vector<Real> _primary_activity_coefficients;
99 
101  const std::vector<Real> _reactions;
102 
104  std::vector<unsigned int> _primary_var_num;
105 
107  std::vector<const VariableValue *> _primary;
108 
109  // Old values of the mineral species concentrations
111 
113  std::vector<Real> _mineral_sat;
114 
116  std::vector<bool> _bounded_rate;
117 
120 
123 
125  const std::vector<Real> _r_area;
126 
128  const std::vector<Real> _molar_volume;
129 
131  const std::vector<Real> _ref_kconst;
132 
134  const std::vector<Real> _e_act;
135 
138 
141 
143  const std::vector<Real> _theta_exponent;
144 
146  const std::vector<Real> _eta_exponent;
147 
149  std::vector<const VariableValue *> _initial_conc;
150 };
const MaterialProperty< std::vector< Real > > & _sec_conc_old
std::vector< const VariableValue * > _initial_conc
Initial values of the secondary species concentrations.
const unsigned _num_equilibrium_constants
Number of equilibrium_constants provided.
std::vector< Real > _mineral_sat
Mineral saturation ratio - a useful temporary variable during computeQpProperties.
virtual void computeQpReactionRates()
Compute the secondary-species concentration as defined by the chemistry Must be overridden by derived...
const std::vector< Real > _reactions
Stoichiometry defining the aqeuous geochemistry equilibrium reactions.
const bool _equilibrium_constants_as_log10
Whether the equilibium constants are written in their log10 form, or in absolute terms.
MaterialProperty< std::vector< Real > > & _reaction_rate
Reaction rate of mineralisation.
Material designed to form a std::vector of mass fractions of mineral concentrations from primary-spec...
const std::vector< Real > _molar_volume
Molar volume (L/mol) for each secondary species.
PorousFlowAqueousPreDisChemistry(const InputParameters &parameters)
MaterialProperty< std::vector< std::vector< Real > > > & _dreaction_rate_dvar
d(reaction rate of mineralisation)/d(porous flow var)
const std::vector< Real > _r_area
Reactive surface area (m^2/L) for each reaction.
const Real _gas_const
Gas constant (J/(mol K))
const MaterialProperty< Real > & _temperature
Temperature.
Real rateConstantQp(unsigned reaction_num) const
Base class for all PorousFlow vector materials.
std::vector< const VariableValue * > _primary
Values of the primary species&#39; concentrations (dimensionless)
virtual Real dQpReactionRate_dT(unsigned reaction_num) const
Computes derivative of the reaction rate with respect to the temperature.
Real stoichiometry(unsigned reaction_num, unsigned primary_num) const
The stoichiometric coefficient.
const std::vector< Real > _eta_exponent
Eta exponent for the precipitation-dissolution for each reaction.
const std::vector< Real > _theta_exponent
Theta exponent for the precipitation-dissolution for each reaction.
const MaterialProperty< std::vector< Real > > & _saturation
Saturation.
const unsigned int _num_primary
Number of primary species.
std::vector< bool > _bounded_rate
Whether the reaction rate has to be bounded in order that the precipitate stays inside [0...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void findZeroConcentration(unsigned &zero_conc_index, unsigned &zero_count) const
Checks gamp[i] = _primary_activity_coefficients[i] * (*_primary[i])[qp].
const std::vector< Real > _ref_kconst
Rate constant (mol/(m^2 s)) at reference temperature for each reaction.
std::vector< unsigned int > _primary_var_num
The variable number of the primary variables.
const std::vector< Real > _primary_activity_coefficients
Activity coefficients for the primary species (dimensionless)
virtual void dQpReactionRate_dprimary(unsigned reaction_num, std::vector< Real > &drr) const
Computes derivative of the reaction rate with respect to the primary concentrations.
const unsigned int _num_reactions
Number of equations in the aqueous geochemistry system.
const MaterialProperty< Real > & _porosity_old
Old values of the porosity.
const unsigned int _aq_ph
Aqueous phase number.
const std::vector< Real > _e_act
Activation energy (J/mol) for each reaction.
const Real _one_over_ref_temp
1/reference_temperature (1/K)
const MaterialProperty< std::vector< Real > > & _dtemperature_dvar
d(temperature)/(d porflow variable)
std::vector< const VariableValue * > _equilibrium_constants
Equilibrium constants (dimensionless)