diff --git a/include/cantera/kinetics/ReactionRateFactory.h b/include/cantera/kinetics/ReactionRateFactory.h index fddb7dbe450..8064fea3f5c 100644 --- a/include/cantera/kinetics/ReactionRateFactory.h +++ b/include/cantera/kinetics/ReactionRateFactory.h @@ -84,5 +84,14 @@ shared_ptr newReactionRate( */ shared_ptr newReactionRate(const AnyMap& rate_node); +//! Create a new Rate object using the specified parameters +/*! + * @param rate_node AnyMap node describing reaction rate. + * @param rate_units Vector describing unit system of the reaction rate; each element + * specifies Unit and exponent applied to the unit. + */ +shared_ptr newReactionRate( + const AnyMap& rate_node, const std::vector>& rate_units); + } #endif diff --git a/src/kinetics/ReactionRateFactory.cpp b/src/kinetics/ReactionRateFactory.cpp index bd925d446af..fc2d8588ba8 100644 --- a/src/kinetics/ReactionRateFactory.cpp +++ b/src/kinetics/ReactionRateFactory.cpp @@ -116,4 +116,10 @@ shared_ptr newReactionRate(const AnyMap& rate_node) return newReactionRate(node, Units(0.)); } +shared_ptr newReactionRate( + const AnyMap& rate_node, const std::vector>& rate_units) +{ + return newReactionRate(rate_node, Units::product(rate_units)); +} + }