10 #ifndef CT_GASKINETICS_H
11 #define CT_GASKINETICS_H
16 #include "cantera/thermo/mix_defs.h"
29 void get_wdot(
const doublereal* rop, doublereal* wdot);
101 DEPRECATED(
virtual int ID()
const) {
136 std::copy(m_ropf.begin(), m_ropf.end(), fwdROP);
147 std::copy(m_ropr.begin(), m_ropr.end(), revROP);
158 std::copy(m_ropnet.begin(), m_ropnet.end(), netROP);
283 return m_index[i].first;
296 if (std::find(m_revindex.begin(), m_revindex.end(), i)
297 < m_revindex.end()) {
321 bool doIrreversible =
false);
335 virtual bool ready()
const;
338 virtual void update_C();
343 const std::vector<grouplist_t>& reactantGroups(
size_t i) {
346 const std::vector<grouplist_t>& productGroups(
size_t i) {
350 virtual void update_rates_T();
351 virtual void update_rates_C();
353 void _update_rates_T() {
371 std::vector<size_t> m_fallindx;
377 mutable std::map<size_t, std::pair<int, size_t> > m_index;
381 ThirdBodyMgr<Enhanced3BConc> m_3b_concm;
382 ThirdBodyMgr<Enhanced3BConc> m_falloff_concm;
384 std::vector<size_t> m_irrev;
391 std::vector<size_t> m_fwdOrder;
396 std::map<size_t, std::vector<grouplist_t> > m_rgroups;
397 std::map<size_t, std::vector<grouplist_t> > m_pgroups;
399 std::vector<int> m_rxntype;
401 mutable std::vector<std::map<size_t, doublereal> > m_rrxn;
402 mutable std::vector<std::map<size_t, doublereal> > m_prxn;
411 std::vector<size_t> m_revindex;
413 std::vector<std::string> m_rxneqn;
417 doublereal m_logp_ref;
418 doublereal m_logc_ref;
419 doublereal m_logStandConc;
436 void processFalloffReactions();
442 size_t reactionNumber() {
445 std::vector<std::map<int, doublereal> > m_stoich;
447 void addElementaryReaction(ReactionData& r);
448 void addThreeBodyReaction(ReactionData& r);
449 void addFalloffReaction(ReactionData& r);
450 void addPlogReaction(ReactionData& r);
451 void addChebyshevReaction(ReactionData& r);
453 void installReagents(
const ReactionData& r);
455 void installGroups(
size_t irxn,
const std::vector<grouplist_t>& r,
456 const std::vector<grouplist_t>& p);
459 void registerReaction(
size_t rxnNumber,
int type,
size_t loc) {
460 m_index[rxnNumber] = std::pair<int, size_t>(
type, loc);