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;
Various templated functions that carry out common vector operations (see Templated Utility Functions)...
This file contains definitions of terms that are used in internal routines and are unlikely to need m...
void scatter_mult(InputIter mult_begin, InputIter mult_end, RandAccessIter data, IndexIter index)
Multiply selected elements in an array by a contiguous sequence of multipliers.
void multiply(const DenseMatrix &A, const double *const b, double *const prod)
Multiply A*b and return the result in prod. Uses BLAS routine DGEMV.
std::vector< double > vector_fp
Turn on the use of stl vectors for the basic array type within cantera Vector of doubles.