https://mooseframework.inl.gov
Loading...
Searching...
No Matches
PorousFlowMassFractionAqueousEquilibriumChemistry.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
21{
22public:
24
26
27protected:
28 virtual void initQpStatefulProperties() override;
29 virtual void computeQpProperties() override;
30
36 Real stoichiometry(unsigned reaction_num, unsigned primary_num) const;
37
43
47 virtual void initQpSecondaryConcentrations();
48
57 void findZeroConcentration(unsigned & zero_conc_index, unsigned & zero_count) const;
58
65 virtual void dQpSecondaryConcentration_dprimary(unsigned reaction_num,
66 std::vector<Real> & dsc) const;
67
74 virtual Real dQpSecondaryConcentration_dT(unsigned reaction_num) const;
75
78
81
84
87
89 const unsigned int _num_primary;
90
92 const unsigned int _aq_ph;
93
95 const unsigned int _aq_i;
96
98 const unsigned int _num_reactions;
99
102
105
107 std::vector<const VariableValue *> _equilibrium_constants;
108
110 const std::vector<Real> _primary_activity_coefficients;
111
113 const std::vector<Real> _reactions;
114
116 const std::vector<Real> _secondary_activity_coefficients;
117};
Material designed to form a std::vector<std::vector> of mass fractions from primary-species concentra...
const std::vector< Real > _reactions
Stoichiometry defining the aqeuous geochemistry equilibrium reactions.
const unsigned int _aq_i
Index (into _mf_vars) of the first of the primary species.
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...
Real stoichiometry(unsigned reaction_num, unsigned primary_num) const
The stoichiometric coefficient.
MaterialProperty< std::vector< std::vector< Real > > > & _dsec_conc_dvar
Derivative of the secondary concentrations with respect to the porous flow variables.
virtual Real dQpSecondaryConcentration_dT(unsigned reaction_num) const
Computes derivative of the secondary concentration with respect to the temperature Must be overridden...
std::vector< const VariableValue * > _equilibrium_constants
Equilibrium constants (dimensionless)
const MaterialProperty< std::vector< Real > > & _dtemperature_dvar
d(temperature)/(d porflow variable)
MaterialProperty< std::vector< Real > > & _sec_conc
Secondary concentrations at quadpoint or nodes.
void findZeroConcentration(unsigned &zero_conc_index, unsigned &zero_count) const
Checks gamp[i] = _primary_activity_coefficients[i] * (*_primary[i])[qp].
const unsigned _num_equilibrium_constants
Number of equilibrium_constants provided.
const bool _equilibrium_constants_as_log10
Whether the equilibium constants are written in their log10 form, or in absolute terms.
virtual void computeQpSecondaryConcentrations()
Compute the secondary-species concentration as defined by the chemistry Must be overridden by derived...
const std::vector< Real > _secondary_activity_coefficients
Activity coefficients for the secondary species.
const std::vector< Real > _primary_activity_coefficients
Activity coefficients for the primary species (dimensionless)
virtual void initQpSecondaryConcentrations()
Initialises (at _t_step = 0) the secondary concentrations.
const unsigned int _num_reactions
Number of equations in the aqueous geochemistry system.
Material designed to form a std::vector<std::vector> of mass fractions from the individual mass fract...