SootLib
Loading...
Searching...
No Matches
sootModel.cc
Go to the documentation of this file.
1
#include "
sootModel.h
"
2
#include <iostream>
3
4
#include "
nucleationModels/nucleationModel_NONE.h
"
5
#include "
nucleationModels/nucleationModel_LL.h
"
6
#include "
nucleationModels/nucleationModel_LIN.h
"
7
#include "
nucleationModels/nucleationModel_LINA1.h
"
8
#include "
nucleationModels/nucleationModel_PAH.h
"
9
10
#include "
growthModels/growthModel_NONE.h
"
11
#include "
growthModels/growthModel_LL.h
"
12
#include "
growthModels/growthModel_LIN.h
"
13
#include "
growthModels/growthModel_HACA.h
"
14
15
#include "
oxidationModels/oxidationModel_NONE.h
"
16
#include "
oxidationModels/oxidationModel_LL.h
"
17
#include "
oxidationModels/oxidationModel_HACA.h
"
18
#include "
oxidationModels/oxidationModel_LEE_NEOH.h
"
19
#include "
oxidationModels/oxidationModel_NSC_NEOH.h
"
20
#include "
oxidationModels/oxidationModel_OPTJ.h
"
21
#include "
oxidationModels/oxidationModel_OPTG.h
"
22
23
#include "
coagulationModels/coagulationModel_NONE.h
"
24
#include "
coagulationModels/coagulationModel_FM.h
"
25
#include "
coagulationModels/coagulationModel_CONTINUUM.h
"
26
#include "
coagulationModels/coagulationModel_HM.h
"
27
#include "
coagulationModels/coagulationModel_FUCHS.h
"
28
29
using namespace
std;
30
using namespace
soot
;
31
44
45
sootModel::sootModel
(
size_t
nsoot_,
46
nucleationModel
*nucl_,
47
growthModel
*grow_,
48
oxidationModel
*oxid_,
49
coagulationModel
*coag_) :
50
nsoot(nsoot_), nucl(nucl_), grow(grow_), oxid(oxid_), coag(coag_),
51
mechsNewedHere(false), sources(nsoot_) {
52
checkSpec
();
53
nucl
->
SM
=
this
;
54
grow
->
SM
=
this
;
55
oxid
->
SM
=
this
;
56
coag
->
SM
=
this
;
57
}
58
59
72
73
sootModel::sootModel
(
size_t
nsoot_,
74
nucleationMech
Nmech,
75
growthMech
Gmech,
76
oxidationMech
Omech,
77
coagulationMech
Cmech) : nsoot(nsoot_),
78
mechsNewedHere(true),
79
sources(nsoot_) {
80
81
//---------- set nucleation model
82
83
switch
(Nmech) {
84
case
nucleationMech::NONE
:
nucl
=
new
nucleationModel_NONE
();
break
;
85
case
nucleationMech::LL
:
nucl
=
new
nucleationModel_LL
();
break
;
86
case
nucleationMech::LIN
:
nucl
=
new
nucleationModel_LIN
();
break
;
87
case
nucleationMech::LINA1
:
nucl
=
new
nucleationModel_LINA1
();
break
;
88
case
nucleationMech::PAH
:
nucl
=
new
nucleationModel_PAH
();
break
;
89
default
:
throw
domain_error(
"Invalid nucleation model requested"
);
90
}
91
92
//---------- set growth model
93
94
switch
(Gmech) {
95
case
growthMech::NONE
:
grow
=
new
growthModel_NONE
();
break
;
96
case
growthMech::LL
:
grow
=
new
growthModel_LL
();
break
;
97
case
growthMech::LIN
:
grow
=
new
growthModel_LIN
();
break
;
98
case
growthMech::HACA
:
grow
=
new
growthModel_HACA
();
break
;
99
default
:
throw
domain_error(
"Invalid growth model requested"
);
100
}
101
102
//---------- set oxidation model
103
104
switch
(Omech) {
105
case
oxidationMech::NONE
:
oxid
=
new
oxidationModel_NONE
();
break
;
106
case
oxidationMech::LL
:
oxid
=
new
oxidationModel_LL
();
break
;
107
case
oxidationMech::HACA
:
oxid
=
new
oxidationModel_HACA
();
break
;
108
case
oxidationMech::LEE_NEOH
:
oxid
=
new
oxidationModel_LEE_NEOH
();
break
;
109
case
oxidationMech::NSC_NEOH
:
oxid
=
new
oxidationModel_NSC_NEOH
();
break
;
110
case
oxidationMech::OPTJ
:
oxid
=
new
oxidationModel_OPTJ
();
break
;
111
case
oxidationMech::OPTG
:
oxid
=
new
oxidationModel_OPTG
();
break
;
112
default
:
throw
domain_error(
"Invalid oxidation model requested"
);
113
}
114
115
//---------- set coagulation model
116
117
switch
(Cmech) {
118
case
coagulationMech::NONE
:
coag
=
new
coagulationModel_NONE
();
break
;
119
case
coagulationMech::FM
:
coag
=
new
coagulationModel_FM
();
break
;
120
case
coagulationMech::CONTINUUM
:
coag
=
new
coagulationModel_CONTINUUM
();
break
;
121
case
coagulationMech::HM
:
coag
=
new
coagulationModel_HM
();
break
;
122
case
coagulationMech::FUCHS
:
coag
=
new
coagulationModel_FUCHS
();
break
;
123
default
:
throw
domain_error(
"Invalid coagulation model requested"
);
124
}
125
126
//-----------
127
128
nucl
->
SM
=
this
;
129
grow
->
SM
=
this
;
130
oxid
->
SM
=
this
;
131
coag
->
SM
=
this
;
132
133
//-----------
134
135
checkSpec
();
136
}
137
143
144
void
sootModel::checkSpec
() {
145
146
if
((
grow
->
mechType
==
growthMech::HACA
&&
oxid
->
mechType
!=
oxidationMech::HACA
) ||
147
(
oxid
->
mechType
==
oxidationMech::HACA
&&
grow
->
mechType
!=
growthMech::HACA
))
148
cerr << endl
149
<<
"**********************************************************************"
<< endl
150
<<
"Warning: HACA surface growth should pair with HACA oxid and vice-versa"
<< endl
151
<<
"**********************************************************************"
<< endl << endl;
152
//throw domain_error("Invalid model combination: HACA surface growth must pair with HACA oxid and vice-versa");
153
}
soot::coagulationModel_CONTINUUM
Definition:
coagulationModel_CONTINUUM.h:14
soot::coagulationModel_FM
Definition:
coagulationModel_FM.h:14
soot::coagulationModel_FUCHS
Definition:
coagulationModel_FUCHS.h:14
soot::coagulationModel_HM
Definition:
coagulationModel_HM.h:15
soot::coagulationModel_NONE
Definition:
coagulationModel_NONE.h:14
soot::coagulationModel
Definition:
coagulationModel.h:15
soot::coagulationModel::SM
sootModel * SM
back pointer to soot model
Definition:
coagulationModel.h:21
soot::growthModel_HACA
Definition:
growthModel_HACA.h:14
soot::growthModel_LIN
Definition:
growthModel_LIN.h:14
soot::growthModel_LL
Definition:
growthModel_LL.h:14
soot::growthModel_NONE
Definition:
growthModel_NONE.h:14
soot::growthModel
Definition:
growthModel.h:17
soot::growthModel::mechType
growthMech mechType
identity of the type of growth (child)
Definition:
growthModel.h:24
soot::growthModel::SM
sootModel * SM
back pointer to soot model
Definition:
growthModel.h:23
soot::nucleationModel_LINA1
Definition:
nucleationModel_LINA1.h:14
soot::nucleationModel_LIN
Definition:
nucleationModel_LIN.h:14
soot::nucleationModel_LL
Definition:
nucleationModel_LL.h:14
soot::nucleationModel_NONE
Definition:
nucleationModel_NONE.h:14
soot::nucleationModel_PAH
Definition:
nucleationModel_PAH.h:15
soot::nucleationModel
Definition:
nucleationModel.h:18
soot::nucleationModel::SM
sootModel * SM
back pointer to soot model
Definition:
nucleationModel.h:24
soot::oxidationModel_HACA
Definition:
oxidationModel_HACA.h:14
soot::oxidationModel_LEE_NEOH
Definition:
oxidationModel_LEE_NEOH.h:14
soot::oxidationModel_LL
Definition:
oxidationModel_LL.h:14
soot::oxidationModel_NONE
Definition:
oxidationModel_NONE.h:14
soot::oxidationModel_NSC_NEOH
Definition:
oxidationModel_NSC_NEOH.h:14
soot::oxidationModel_OPTG
Definition:
oxidationModel_OPTG.h:14
soot::oxidationModel_OPTJ
Definition:
oxidationModel_OPTJ.h:14
soot::oxidationModel
Definition:
oxidationModel.h:18
soot::oxidationModel::mechType
oxidationMech mechType
identity of the type of oxidation (child)
Definition:
oxidationModel.h:25
soot::oxidationModel::SM
sootModel * SM
back pointer to soot model
Definition:
oxidationModel.h:24
soot::sootModel::sootModel
sootModel(size_t nsoot_, nucleationModel *nucl_, growthModel *grow_, oxidationModel *oxid_, coagulationModel *coag_)
Definition:
sootModel.cc:45
soot::sootModel::checkSpec
void checkSpec()
Definition:
sootModel.cc:144
soot::sootModel::coag
coagulationModel * coag
pointer to coagulation mechanism
Definition:
sootModel.h:33
soot::sootModel::nucl
nucleationModel * nucl
pointer to nucleation mechanism
Definition:
sootModel.h:30
soot::sootModel::grow
growthModel * grow
pointer to growth mechanism
Definition:
sootModel.h:31
soot::sootModel::oxid
oxidationModel * oxid
pointer to oxidation mechanism
Definition:
sootModel.h:32
coagulationModel_CONTINUUM.h
coagulationModel_FM.h
coagulationModel_FUCHS.h
coagulationModel_HM.h
coagulationModel_NONE.h
growthModel_HACA.h
growthModel_LIN.h
growthModel_LL.h
growthModel_NONE.h
soot
Definition:
sootDefs.h:11
soot::oxidationMech
oxidationMech
Definition:
sootDefs.h:33
soot::oxidationMech::OPTJ
@ OPTJ
soot::oxidationMech::HACA
@ HACA
soot::oxidationMech::NSC_NEOH
@ NSC_NEOH
soot::oxidationMech::LL
@ LL
soot::oxidationMech::LEE_NEOH
@ LEE_NEOH
soot::oxidationMech::OPTG
@ OPTG
soot::oxidationMech::NONE
@ NONE
soot::coagulationMech
coagulationMech
Definition:
sootDefs.h:34
soot::coagulationMech::HM
@ HM
soot::coagulationMech::CONTINUUM
@ CONTINUUM
soot::coagulationMech::NONE
@ NONE
soot::coagulationMech::FUCHS
@ FUCHS
soot::coagulationMech::FM
@ FM
soot::growthMech
growthMech
Definition:
sootDefs.h:32
soot::growthMech::HACA
@ HACA
soot::growthMech::LL
@ LL
soot::growthMech::LIN
@ LIN
soot::growthMech::NONE
@ NONE
soot::nucleationMech
nucleationMech
Definition:
sootDefs.h:31
soot::nucleationMech::LINA1
@ LINA1
soot::nucleationMech::PAH
@ PAH
soot::nucleationMech::LL
@ LL
soot::nucleationMech::LIN
@ LIN
soot::nucleationMech::NONE
@ NONE
nucleationModel_LIN.h
nucleationModel_LINA1.h
nucleationModel_LL.h
nucleationModel_NONE.h
nucleationModel_PAH.h
oxidationModel_HACA.h
oxidationModel_LEE_NEOH.h
oxidationModel_LL.h
oxidationModel_NONE.h
oxidationModel_NSC_NEOH.h
oxidationModel_OPTG.h
oxidationModel_OPTJ.h
sootModel.h
src
sootModel.cc
Generated by
1.9.5