https://mooseframework.inl.gov
Public Member Functions | Public Attributes | List of all members
KineticRateUserDescription Struct Reference

Holds a user-specified description of a kinetic rate. More...

#include <GeochemistryKineticRateCalculator.h>

Public Member Functions

 KineticRateUserDescription (const std::string &kinetic_species_name, Real intrinsic_rate_constant, Real area_quantity, bool multiply_by_mass, Real kinetic_molal_index, Real kinetic_monod_index, Real kinetic_half_saturation, const std::vector< std::string > &promoting_species, const std::vector< Real > &promoting_indices, const std::vector< Real > &promoting_monod_indices, const std::vector< Real > &promoting_half_saturation, Real theta, Real eta, Real activation_energy, Real one_over_T0, DirectionChoiceEnum direction, std::string progeny, Real progeny_efficiency, Real kinetic_bio_efficiency, Real energy_captured)
 
bool operator== (const KineticRateUserDescription &rhs) const
 

Public Attributes

std::string kinetic_species_name
 
Real intrinsic_rate_constant
 
Real area_quantity
 
bool multiply_by_mass
 
Real kinetic_molal_index
 
Real kinetic_monod_index
 
Real kinetic_half_saturation
 
std::vector< std::string > promoting_species
 
std::vector< Realpromoting_indices
 
std::vector< Realpromoting_monod_indices
 
std::vector< Realpromoting_half_saturation
 
Real theta
 
Real eta
 
Real activation_energy
 
Real one_over_T0
 
DirectionChoiceEnum direction
 
std::string progeny
 
Real progeny_efficiency
 
Real kinetic_bio_efficiency
 
Real energy_captured
 

Detailed Description

Holds a user-specified description of a kinetic rate.

Parameters
kinetic_speciesname of the kinetic species
intrinsic_rate_constantNote that intrinsic_rate_constant * area_quantity * [kinetic_species mass] must have dimensions mol.s^-1
area_quantityEither 1, or the fixed surface area of the kinetic species, or a specific surface area (m^2/g)
multiply_by_masswhether the rate should be multiplied by the kinetic_species mass
kinetic_molal_index,rateis multiplied by kinetic_species_molality^kinetic_molal_index
kinetic_monod_index,rateis multiplied by 1.0 / (kinetic_species_molality^kinetic_molal_index + kinetic_half_saturation^kinetic_molal_index)^kinetic_monod_index
kinetic_half_saturation,rateis multiplied by 1.0 / (kinetic_species_molality^kinetic_molal_index + kinetic_half_saturation^kinetic_molal_index)^kinetic_monod_index
promoting_speciesnames of species (which must be primary or secondary species in the system)
promoting_indicesindices of mass, fugacity, activity or mobility (as appropriate)
promoting_monod_indicesmonod indices of mass, fugacity, activity or mobility (as appropriate)
promoting_half_saturationhalf saturation values of all promoting species
thetaexponent of (Q/K)
etaexponent of |1-(Q/K)^theta|
activation_energyin J.mol^-1
one_over_T0measured in 1/Kelvin
directionwhether this kinetic rate is designed for: "both" precipitation and dissolution; "precipitation" only; "dissolution" only; and "raw" or "death" mean the rate does not depend on the sign of 1-(Q/K)
progenyA non-kinetic species that catalyses the reaction, and potentially gets produced or consumed by it
progeny_efficiencyWhen one mole of reaction is catalysed, progeny_efficiency moles of the progeny is created
kinetic_bio_efficiencythe efficiency of a biologically-catalysed reaction, that is, when one mole of reaction is catalysed, the biomass increases by kinetic_bio_efficiency moles
energycaptured: energy captured by a biologically-catalysed reaction, essentially this reduces the equilibrium constant of the reaction by exp(-energy_capture / R / Tk)

Definition at line 75 of file GeochemistryKineticRateCalculator.h.

Constructor & Destructor Documentation

◆ KineticRateUserDescription()

KineticRateUserDescription::KineticRateUserDescription ( const std::string &  kinetic_species_name,
Real  intrinsic_rate_constant,
Real  area_quantity,
bool  multiply_by_mass,
Real  kinetic_molal_index,
Real  kinetic_monod_index,
Real  kinetic_half_saturation,
const std::vector< std::string > &  promoting_species,
const std::vector< Real > &  promoting_indices,
const std::vector< Real > &  promoting_monod_indices,
const std::vector< Real > &  promoting_half_saturation,
Real  theta,
Real  eta,
Real  activation_energy,
Real  one_over_T0,
DirectionChoiceEnum  direction,
std::string  progeny,
Real  progeny_efficiency,
Real  kinetic_bio_efficiency,
Real  energy_captured 
)
inline

Definition at line 77 of file GeochemistryKineticRateCalculator.h.

108  theta(theta),
109  eta(eta),
113  progeny(progeny),
117  {
118  if (promoting_species.size() != promoting_indices.size())
119  mooseError("The promoting_species and promoting_indices vectors must be the same size");
120  if (promoting_species.size() != promoting_monod_indices.size())
121  mooseError("The promoting_species and promoting_monod_indices vectors must be the same size");
122  if (promoting_species.size() != promoting_half_saturation.size())
123  mooseError(
124  "The promoting_species and promoting_half_saturation vectors must be the same size");
125  std::unordered_map<std::string, int> check_for_repeats;
126  for (const std::string & name : promoting_species)
127  if (check_for_repeats.count(name) == 1)
128  mooseError("Promoting species ", name, " has already been provided with an exponent");
129  else
130  check_for_repeats[name] = 1;
131  };
void mooseError(Args &&... args)
const std::string name
Definition: Setup.h:20
std::vector< std::string > promoting_species

Member Function Documentation

◆ operator==()

bool KineticRateUserDescription::operator== ( const KineticRateUserDescription rhs) const
inline

Definition at line 133 of file GeochemistryKineticRateCalculator.h.

134  {
135  return (kinetic_species_name == rhs.kinetic_species_name) &&
145  (eta == rhs.eta) && (activation_energy == rhs.activation_energy) &&
146  (one_over_T0 == rhs.one_over_T0) && (direction == rhs.direction) &&
147  (progeny == rhs.progeny) && (progeny_efficiency == rhs.progeny_efficiency) &&
150  };
std::vector< std::string > promoting_species

Member Data Documentation

◆ activation_energy

Real KineticRateUserDescription::activation_energy

◆ area_quantity

Real KineticRateUserDescription::area_quantity

◆ direction

DirectionChoiceEnum KineticRateUserDescription::direction

◆ energy_captured

Real KineticRateUserDescription::energy_captured

◆ eta

Real KineticRateUserDescription::eta

◆ intrinsic_rate_constant

Real KineticRateUserDescription::intrinsic_rate_constant

◆ kinetic_bio_efficiency

Real KineticRateUserDescription::kinetic_bio_efficiency

Definition at line 170 of file GeochemistryKineticRateCalculator.h.

Referenced by operator==().

◆ kinetic_half_saturation

Real KineticRateUserDescription::kinetic_half_saturation

◆ kinetic_molal_index

Real KineticRateUserDescription::kinetic_molal_index

◆ kinetic_monod_index

Real KineticRateUserDescription::kinetic_monod_index

◆ kinetic_species_name

std::string KineticRateUserDescription::kinetic_species_name

◆ multiply_by_mass

bool KineticRateUserDescription::multiply_by_mass

◆ one_over_T0

Real KineticRateUserDescription::one_over_T0

◆ progeny

std::string KineticRateUserDescription::progeny

◆ progeny_efficiency

Real KineticRateUserDescription::progeny_efficiency

Definition at line 169 of file GeochemistryKineticRateCalculator.h.

Referenced by operator==().

◆ promoting_half_saturation

std::vector<Real> KineticRateUserDescription::promoting_half_saturation

◆ promoting_indices

std::vector<Real> KineticRateUserDescription::promoting_indices

◆ promoting_monod_indices

std::vector<Real> KineticRateUserDescription::promoting_monod_indices

◆ promoting_species

std::vector<std::string> KineticRateUserDescription::promoting_species

◆ theta

Real KineticRateUserDescription::theta

The documentation for this struct was generated from the following file: