24 sootModel(nsoot_, nucl_, grow_, oxid_, coag_) {
27 throw runtime_error(
"MONO requires nsoot=2");
49 sootModel(nsoot_, Nmech, Gmech, Omech, Cmech) {
52 throw runtime_error(
"MONO requires nsoot=2");
114 double Am2m3 = M0 > 0 ? M_PI*pow(6./(M_PI*
rhoSoot)*M1/M0,
twothird)*M0 : 0;
142 vector<double> nucl_gasSources((
size_t)
gasSp::size, 0.0);
143 vector<double> grow_gasSources((
size_t)
gasSp::size, 0.0);
144 vector<double> oxid_gasSources((
size_t)
gasSp::size, 0.0);
151 sources.
gasSources[sp] = nucl_gasSources[sp] + grow_gasSources[sp] + oxid_gasSources[sp];
coagulationMech mechType
identity of the type of coagulation (child)
virtual double getCoagulationSootRate(const state &state, double m1, double m2) const =0
void getGrowthGasRates(const double &msootDotGrow, std::vector< double > &gasSourcesGrow) const
virtual double getGrowthSootRate(const state &state) const =0
growthMech mechType
identity of the type of growth (child)
std::vector< double > nucleationPahRxnRates
mole ratios for PAH gas species rate coupling
void getNucleationGasRates(const double &msootDotNucl, std::vector< double > &gasSourcesNucl) const
dimerStruct DIMER
used for PAH nucleation only
nucleationMech mechType
identity of the type of nucleation (child)
virtual double getNucleationSootRate(state &state)=0
void getOxidationGasRates(const double &msootDotOxid, std::vector< double > &gasSourcesOxid) const
oxidationMech mechType
identity of the type of oxidation (child)
virtual double getOxidationSootRate(const state &state) const =0
virtual void setSourceTerms(state &state)
sootModel_MONO(size_t nsoot_, nucleationModel *nucl_, growthModel *grow_, oxidationModel *oxid_, coagulationModel *coag_)
coagulationModel * coag
pointer to coagulation mechanism
psdMech psdMechType
one of MONO, LOGN, QMOM, MOMIC, SECT, etc.
sourceTerms sources
struct containing soot, gas, and pah source terms vectors
nucleationModel * nucl
pointer to nucleation mechanism
growthModel * grow
pointer to growth mechanism
oxidationModel * oxid
pointer to oxidation mechanism
std::vector< double > wts
moment weights
std::vector< double > sootVar
soot variables (moments or # in sections>
double cMin
soot min num carbon atoms (dynamic for PAH nucleation)
std::vector< double > absc
moment abscissas
const double rhoSoot
soot particle density
const double Na
Avogadro's constant: #/kmol.
const std::vector< double > gasSpMW
(kg/kmol); make sure the order corresponds to the gasSp enum
std::vector< double > pahSources
kg/m3*s
std::vector< double > gasSources
kg/m3*s
std::vector< double > sootSources
kg^r/m3*s (moments), or #/m3*s (sections)