8 #ifndef CT_THIRDBODY_MGR_H
9 #define CT_THIRDBODY_MGR_H
27 ThirdBodyMgr<_E>() : m_n(0) {}
29 void install(
size_t rxnNumber,
const std::map<size_t, doublereal>& enhanced,
30 doublereal dflt=1.0) {
32 m_reaction_index.push_back(rxnNumber);
33 m_concm.push_back(_E(static_cast<int>(enhanced.size()),
37 void update(
const vector_fp& conc, doublereal ctot, doublereal* work) {
38 typename std::vector<_E>::const_iterator b = m_concm.begin();
40 for (; b != m_concm.end(); ++b, ++work) {
41 *work = b->update(conc, ctot);
45 void multiply(doublereal* output,
const doublereal* work) {
47 output, m_reaction_index.begin());
51 return m_concm.size();
53 bool contains(
int rxnNumber) {
54 return (find(m_reaction_index.begin(),
55 m_reaction_index.end(), rxnNumber)
56 != m_reaction_index.end());
62 std::vector<size_t> m_reaction_index;
63 std::vector<_E> m_concm;