119 mooseError(
"The promoting_species and promoting_indices vectors must be the same size");
121 mooseError(
"The promoting_species and promoting_monod_indices vectors must be the same size");
124 "The promoting_species and promoting_half_saturation vectors must be the same size");
125 std::unordered_map<std::string, int> check_for_repeats;
127 if (check_for_repeats.count(
name) == 1)
128 mooseError(
"Promoting species ",
name,
" has already been provided with an exponent");
130 check_for_repeats[
name] = 1;
275 void calculateRate(
const std::vector<Real> & promoting_indices,
276 const std::vector<Real> & promoting_monod_indices,
277 const std::vector<Real> & promoting_half_saturation,
279 const std::vector<std::string> & basis_species_name,
280 const std::vector<bool> & basis_species_gas,
281 const std::vector<Real> & basis_molality,
282 const std::vector<Real> & basis_activity,
283 const std::vector<bool> & basis_activity_known,
284 const std::vector<std::string> & eqm_species_name,
285 const std::vector<bool> & eqm_species_gas,
286 const std::vector<Real> & eqm_molality,
287 const std::vector<Real> & eqm_activity,
290 Real kin_species_molecular_weight,
292 Real log10_activity_product,
298 std::vector<Real> & drate_dmol);
void mooseError(Args &&... args)
Real kinetic_half_saturation
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)
Real kinetic_bio_efficiency
std::vector< Real > promoting_half_saturation
void calculateRate(const std::vector< Real > &promoting_indices, const std::vector< Real > &promoting_monod_indices, const std::vector< Real > &promoting_half_saturation, const KineticRateUserDescription &description, const std::vector< std::string > &basis_species_name, const std::vector< bool > &basis_species_gas, const std::vector< Real > &basis_molality, const std::vector< Real > &basis_activity, const std::vector< bool > &basis_activity_known, const std::vector< std::string > &eqm_species_name, const std::vector< bool > &eqm_species_gas, const std::vector< Real > &eqm_molality, const std::vector< Real > &eqm_activity, const DenseMatrix< Real > &eqm_stoichiometry, Real kin_moles, Real kin_species_molecular_weight, Real log10K, Real log10_activity_product, const DenseMatrix< Real > &kin_stoichiometry, unsigned kin, Real temp_degC, Real &rate, Real &drate_dkin, std::vector< Real > &drate_dmol)
Calclates a kinetic rate and its derivative.
DirectionChoiceEnum direction
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Holds a user-specified description of a kinetic rate.
bool operator==(const KineticRateUserDescription &rhs) const
std::vector< Real > promoting_indices
Real intrinsic_rate_constant
Provides a parametric description of a general kinetic rate.
std::string kinetic_species_name
std::vector< Real > promoting_monod_indices
std::vector< std::string > promoting_species
DirectionChoiceEnum
This controls the direction of a kinetic rate BOTH: both dissolution and precipitation are allowed PR...