www.mooseframework.org
PorousFlowMassFractionAqueousEquilibriumChemistry.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 
12 #include "PorousFlowMassFraction.h"
13 
15 
16 template <>
18 
26 {
27 public:
28  PorousFlowMassFractionAqueousEquilibriumChemistry(const InputParameters & parameters);
29 
30 protected:
31  virtual void initQpStatefulProperties() override;
32  virtual void computeQpProperties() override;
33 
39  Real stoichiometry(unsigned reaction_num, unsigned primary_num) const;
40 
45  virtual void computeQpSecondaryConcentrations();
46 
50  virtual void initQpSecondaryConcentrations();
51 
60  void findZeroConcentration(unsigned & zero_conc_index, unsigned & zero_count) const;
61 
68  virtual void dQpSecondaryConcentration_dprimary(unsigned reaction_num,
69  std::vector<Real> & dsc) const;
70 
77  virtual Real dQpSecondaryConcentration_dT(unsigned reaction_num) const;
78 
80  MaterialProperty<std::vector<Real>> & _sec_conc;
81 
83  MaterialProperty<std::vector<std::vector<Real>>> & _dsec_conc_dvar;
84 
86  const MaterialProperty<Real> & _temperature;
87 
89  const MaterialProperty<std::vector<Real>> & _dtemperature_dvar;
90 
92  const unsigned int _num_primary;
93 
95  const unsigned int _aq_ph;
96 
98  const unsigned int _aq_i;
99 
101  const unsigned int _num_reactions;
102 
105 
108 
110  std::vector<const VariableValue *> _equilibrium_constants;
111 
113  const std::vector<Real> _primary_activity_coefficients;
114 
116  const std::vector<Real> _reactions;
117 
119  const std::vector<Real> _secondary_activity_coefficients;
120 };
121 
PorousFlowMassFractionAqueousEquilibriumChemistry::_secondary_activity_coefficients
const std::vector< Real > _secondary_activity_coefficients
Activity coefficients for the secondary species.
Definition: PorousFlowMassFractionAqueousEquilibriumChemistry.h:119
PorousFlowMassFractionAqueousEquilibriumChemistry::_num_equilibrium_constants
const unsigned _num_equilibrium_constants
Number of equilibrium_constants provided.
Definition: PorousFlowMassFractionAqueousEquilibriumChemistry.h:107
PorousFlowMassFractionAqueousEquilibriumChemistry::_reactions
const std::vector< Real > _reactions
Stoichiometry defining the aqeuous geochemistry equilibrium reactions.
Definition: PorousFlowMassFractionAqueousEquilibriumChemistry.h:116
PorousFlowMassFractionAqueousEquilibriumChemistry::_primary_activity_coefficients
const std::vector< Real > _primary_activity_coefficients
Activity coefficients for the primary species (dimensionless)
Definition: PorousFlowMassFractionAqueousEquilibriumChemistry.h:113
PorousFlowMassFractionAqueousEquilibriumChemistry::initQpStatefulProperties
virtual void initQpStatefulProperties() override
Definition: PorousFlowMassFractionAqueousEquilibriumChemistry.C:153
PorousFlowMassFractionAqueousEquilibriumChemistry
Material designed to form a std::vector<std::vector> of mass fractions from primary-species concentra...
Definition: PorousFlowMassFractionAqueousEquilibriumChemistry.h:25
validParams< PorousFlowMassFractionAqueousEquilibriumChemistry >
InputParameters validParams< PorousFlowMassFractionAqueousEquilibriumChemistry >()
Definition: PorousFlowMassFractionAqueousEquilibriumChemistry.C:16
PorousFlowMassFractionAqueousEquilibriumChemistry::_sec_conc
MaterialProperty< std::vector< Real > > & _sec_conc
Secondary concentrations at quadpoint or nodes.
Definition: PorousFlowMassFractionAqueousEquilibriumChemistry.h:80
PorousFlowMassFractionAqueousEquilibriumChemistry::_equilibrium_constants
std::vector< const VariableValue * > _equilibrium_constants
Equilibrium constants (dimensionless)
Definition: PorousFlowMassFractionAqueousEquilibriumChemistry.h:110
PorousFlowMassFractionAqueousEquilibriumChemistry::findZeroConcentration
void findZeroConcentration(unsigned &zero_conc_index, unsigned &zero_count) const
Checks gamp[i] = _primary_activity_coefficients[i] * (*_primary[i])[qp].
Definition: PorousFlowMassFractionAqueousEquilibriumChemistry.C:279
PorousFlowMassFractionAqueousEquilibriumChemistry::dQpSecondaryConcentration_dprimary
virtual void dQpSecondaryConcentration_dprimary(unsigned reaction_num, std::vector< Real > &dsc) const
Computes derivative of the secondary concentration with respect to the primary concentrations Must be...
Definition: PorousFlowMassFractionAqueousEquilibriumChemistry.C:334
PorousFlowMassFractionAqueousEquilibriumChemistry::computeQpProperties
virtual void computeQpProperties() override
Definition: PorousFlowMassFractionAqueousEquilibriumChemistry.C:159
PorousFlowMassFractionAqueousEquilibriumChemistry::_dtemperature_dvar
const MaterialProperty< std::vector< Real > > & _dtemperature_dvar
d(temperature)/(d porflow variable)
Definition: PorousFlowMassFractionAqueousEquilibriumChemistry.h:89
PorousFlowMassFractionAqueousEquilibriumChemistry::PorousFlowMassFractionAqueousEquilibriumChemistry
PorousFlowMassFractionAqueousEquilibriumChemistry(const InputParameters &parameters)
Definition: PorousFlowMassFractionAqueousEquilibriumChemistry.C:68
PorousFlowMassFractionAqueousEquilibriumChemistry::stoichiometry
Real stoichiometry(unsigned reaction_num, unsigned primary_num) const
The stoichiometric coefficient.
Definition: PorousFlowMassFractionAqueousEquilibriumChemistry.C:271
PorousFlowMassFractionAqueousEquilibriumChemistry::initQpSecondaryConcentrations
virtual void initQpSecondaryConcentrations()
Initialises (at _t_step = 0) the secondary concentrations.
Definition: PorousFlowMassFractionAqueousEquilibriumChemistry.C:297
PorousFlowMassFractionAqueousEquilibriumChemistry::_dsec_conc_dvar
MaterialProperty< std::vector< std::vector< Real > > > & _dsec_conc_dvar
Derivative of the secondary concentrations with respect to the porous flow variables.
Definition: PorousFlowMassFractionAqueousEquilibriumChemistry.h:83
PorousFlowMassFractionAqueousEquilibriumChemistry::_temperature
const MaterialProperty< Real > & _temperature
Temperature.
Definition: PorousFlowMassFractionAqueousEquilibriumChemistry.h:86
PorousFlowMassFractionAqueousEquilibriumChemistry::_equilibrium_constants_as_log10
const bool _equilibrium_constants_as_log10
Whether the equilibium constants are written in their log10 form, or in absolute terms.
Definition: PorousFlowMassFractionAqueousEquilibriumChemistry.h:104
PorousFlowMassFractionAqueousEquilibriumChemistry::dQpSecondaryConcentration_dT
virtual Real dQpSecondaryConcentration_dT(unsigned reaction_num) const
Computes derivative of the secondary concentration with respect to the temperature Must be overridden...
Definition: PorousFlowMassFractionAqueousEquilibriumChemistry.C:392
PorousFlowMassFractionAqueousEquilibriumChemistry::_num_primary
const unsigned int _num_primary
Number of primary species.
Definition: PorousFlowMassFractionAqueousEquilibriumChemistry.h:92
PorousFlowMassFractionAqueousEquilibriumChemistry::_aq_i
const unsigned int _aq_i
Index (into _mf_vars) of the first of the primary species.
Definition: PorousFlowMassFractionAqueousEquilibriumChemistry.h:98
PorousFlowMassFractionAqueousEquilibriumChemistry::_aq_ph
const unsigned int _aq_ph
Aqueous phase number.
Definition: PorousFlowMassFractionAqueousEquilibriumChemistry.h:95
PorousFlowMassFractionAqueousEquilibriumChemistry::_num_reactions
const unsigned int _num_reactions
Number of equations in the aqueous geochemistry system.
Definition: PorousFlowMassFractionAqueousEquilibriumChemistry.h:101
PorousFlowMassFraction
Material designed to form a std::vector<std::vector> of mass fractions from the individual mass fract...
Definition: PorousFlowMassFraction.h:23
PorousFlowMassFraction.h
PorousFlowMassFractionAqueousEquilibriumChemistry::computeQpSecondaryConcentrations
virtual void computeQpSecondaryConcentrations()
Compute the secondary-species concentration as defined by the chemistry Must be overridden by derived...
Definition: PorousFlowMassFractionAqueousEquilibriumChemistry.C:303