3 n_Catalyst_1=0, n_CE_A0=1, n_CE_A1=2,n_CE_B=3, n_CE_B2=4, n_CE_I0=5,n_CE_I1=6, n_CE_I2=7, n_CE_PBA=8,n_CE_Breac=9, n_CE_Areac0=10, n_CE_Areac1=11,n_CE_Ireac0=12, n_CE_Ireac1=13, n_CE_Ireac2=14,n_Bulk=15, n_R_1=16, n_R_1_mass=17,n_R_1_temp=18, n_R_1_vol=19}
8 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
12 "Catalyst_1",
"CE_A0",
"CE_A1",
"CE_B",
"CE_B2",
"CE_I0",
"CE_I1",
"CE_I2",
"CE_PBA",
"CE_Breac",
"CE_Areac0",
"CE_Areac1",
"CE_Ireac0",
"CE_Ireac1",
"CE_Ireac2",
"Bulk",
"R_1",
"R_1_mass",
"R_1_temp",
"R_1_vol"}
16 1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,2,2,2,2}
18 static double tGlobal = 0;
19 double max(
double x1,
double x2)
21 return (x1 > x2) ? x1 : x2;
23 double min(
double x1,
double x2)
25 return (x1 < x2) ? x1 : x2;
29 n_kH_prim_OH_EO_Solvent=0, n_kS_prim_OH_EO_Solvent=1, n_kS_sec_OH_PO_Solvent=2,n_kH_sec_OH_PO_Solvent=3, n_kS_prim_OH_BDO_Solvent=4, n_kH_prim_OH_BDO_Solvent=5,n_kS_prim_OH_EO_Cat1=6, n_kS_prim_OH_EO_Cat2=7, n_kH_sec_OH_PO_Cat1=8,n_kS_prim_OH_EO_Cat3=9, n_kH_prim_OH_EO_Cat1=10, n_kS_sec_OH_PO_Cat1=11,n_kH_prim_OH_EO_Cat2=12, n_kH_prim_OH_EO_Cat3=13, n_kH_sec_OH_PO_Cat2=14,n_kH_sec_OH_PO_Cat3=15, n_kS_sec_OH_PO_Cat2=16, n_kS_sec_OH_PO_Cat3=17,n_kS_prim_OH_BDO_Cat1=18, n_kS_prim_OH_BDO_Cat2=19, n_kS_prim_OH_BDO_Cat3=20,n_kH_prim_OH_BDO_Cat1=21, n_kH_prim_OH_BDO_Cat2=22, n_kH_prim_OH_BDO_Cat3=23,n_kH_H2O_prim=24, n_kS_H2O_prim=25, n_kH_H2O_sec=26,n_kS_H2O_sec=27, n_kH_H2O_BDO=28, n_kS_H2O_BDO=29,n_kH_H2O_H2O=30, n_kS_H2O_H2O=31, n_kH_H2O_Cat1=32,n_kH_H2O_Cat1s=33, n_kH_H2O_Cat2=34, n_kH_H2O_Cat2s=35,n_kH_H2O_Cat3=36, n_kH_H2O_Cat3s=37, n_kS_H2O_Cat1=38,n_kS_H2O_Cat1s=39, n_kS_H2O_Cat2=40, n_kS_H2O_Cat2s=41,n_kS_H2O_Cat3=42, n_kS_H2O_Cat3s=43, n_f_cat=44,n_CS=45, n_CH=46, n_k_A1=47,n_k_A0=48, n_k_I1=49, n_k_I2=50,n_f_oh_a0=51, n_f_oh_a2=52, n_deltah_a0=53,n_deltah_a1=54, n_deltah_a2=55, n_deltah_b1=56,n_deltah_b2=57, n_f_oh_a1=58, n_f_oh_b=59,n_f_oh_b2=60, n_convcrit=61, n_t_mix=62,n_kzero=63, n_kone=64, n_ktwo=65,n_kthree=66, n_f_coeff_cross=67, n_f_coeff_end=68,n_f_coeff_cat=69, n_t_phase_transfer_A=70, n_kslow=71,n_kfast=72, n_kdummy=73, n_bubble_conc=74,n_bubble_diam=75, n_diffusion=76, n_sherwood=77,n_cp_A0=78, n_cp_I0=79, n_cp_I1=80,n_cp_I2=81, n_cp_B2=82, n_cp_PBA=83,n_cp_Cat=84, n_cp_A1=85}
34 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
36 double pGlobalIso[86] =
38 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
42 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
46 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
48 double pGlobalType[86] =
50 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
54 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
60 double Kelvin = 273.15;
66 void SetIniState(
double* x)
68 x[n_Catalyst_1] = 6.73000e-02;
69 x[n_CE_A0] = 1.92250e+00;
70 x[n_CE_A1] = 2.26920e+00;
71 x[n_CE_B] = 0.00000e+00;
72 x[n_CE_B2] = 5.46200e-01;
73 x[n_CE_I0] = 2.19790e+00;
74 x[n_CE_I1] = 1.64000e+00;
75 x[n_CE_I2] = 1.71030e+00;
76 x[n_CE_PBA] = 0.00000e+00;
77 x[n_CE_Breac] = 0.00000e+00;
78 x[n_CE_Areac0] = 0.00000e+00;
79 x[n_CE_Areac1] = 0.00000e+00;
80 x[n_CE_Ireac0] = 0.00000e+00;
81 x[n_CE_Ireac1] = 0.00000e+00;
82 x[n_CE_Ireac2] = 0.00000e+00;
83 x[n_Bulk] = 4.45849e+00;
84 x[n_R_1] = 0.00000e+00;
85 x[n_R_1_mass] = 1.00000e+00;
86 x[n_R_1_temp] = 2.27000e+01;
87 x[n_R_1_vol] = 8.46382e-01;
89 void SetGlobalIniState()
93 void SetMolweight(
double* x)
95 x[n_Catalyst_1] = 0.00000e+00;
96 x[n_CE_A0] = 0.00000e+00;
97 x[n_CE_A1] = 0.00000e+00;
98 x[n_CE_B] = 0.00000e+00;
99 x[n_CE_B2] = 0.00000e+00;
100 x[n_CE_I0] = 0.00000e+00;
101 x[n_CE_I1] = 0.00000e+00;
102 x[n_CE_I2] = 0.00000e+00;
103 x[n_CE_PBA] = 0.00000e+00;
104 x[n_CE_Breac] = 0.00000e+00;
105 x[n_CE_Areac0] = 0.00000e+00;
106 x[n_CE_Areac1] = 0.00000e+00;
107 x[n_CE_Ireac0] = 0.00000e+00;
108 x[n_CE_Ireac1] = 0.00000e+00;
109 x[n_CE_Ireac2] = 0.00000e+00;
110 x[n_Bulk] = 2.65000e-01;
111 x[n_R_1] = 0.00000e+00;
112 x[n_R_1_mass] = 0.00000e+00;
113 x[n_R_1_temp] = 0.00000e+00;
114 x[n_R_1_vol] = 0.00000e+00;
116 void SetIniParam(
double* p)
118 p[n_kH_prim_OH_EO_Solvent] = 0.00000e+00;
119 p[n_kS_prim_OH_EO_Solvent] = 0.00000e+00;
120 p[n_kS_sec_OH_PO_Solvent] = 0.00000e+00;
121 p[n_kH_sec_OH_PO_Solvent] = 0.00000e+00;
122 p[n_kS_prim_OH_BDO_Solvent] = 0.00000e+00;
123 p[n_kH_prim_OH_BDO_Solvent] = 0.00000e+00;
124 p[n_kS_prim_OH_EO_Cat1] = 0.00000e+00;
125 p[n_kS_prim_OH_EO_Cat2] = 0.00000e+00;
126 p[n_kH_sec_OH_PO_Cat1] = 0.00000e+00;
127 p[n_kS_prim_OH_EO_Cat3] = 0.00000e+00;
128 p[n_kH_prim_OH_EO_Cat1] = 0.00000e+00;
129 p[n_kS_sec_OH_PO_Cat1] = 0.00000e+00;
130 p[n_kH_prim_OH_EO_Cat2] = 0.00000e+00;
131 p[n_kH_prim_OH_EO_Cat3] = 0.00000e+00;
132 p[n_kH_sec_OH_PO_Cat2] = 0.00000e+00;
133 p[n_kH_sec_OH_PO_Cat3] = 0.00000e+00;
134 p[n_kS_sec_OH_PO_Cat2] = 0.00000e+00;
135 p[n_kS_sec_OH_PO_Cat3] = 0.00000e+00;
136 p[n_kS_prim_OH_BDO_Cat1] = 0.00000e+00;
137 p[n_kS_prim_OH_BDO_Cat2] = 0.00000e+00;
138 p[n_kS_prim_OH_BDO_Cat3] = 0.00000e+00;
139 p[n_kH_prim_OH_BDO_Cat1] = 0.00000e+00;
140 p[n_kH_prim_OH_BDO_Cat2] = 0.00000e+00;
141 p[n_kH_prim_OH_BDO_Cat3] = 0.00000e+00;
142 p[n_kH_H2O_prim] = 0.00000e+00;
143 p[n_kS_H2O_prim] = 0.00000e+00;
144 p[n_kH_H2O_sec] = 0.00000e+00;
145 p[n_kS_H2O_sec] = 0.00000e+00;
146 p[n_kH_H2O_BDO] = 0.00000e+00;
147 p[n_kS_H2O_BDO] = 0.00000e+00;
148 p[n_kH_H2O_H2O] = 0.00000e+00;
149 p[n_kS_H2O_H2O] = 0.00000e+00;
150 p[n_kH_H2O_Cat1] = 0.00000e+00;
151 p[n_kH_H2O_Cat1s] = 0.00000e+00;
152 p[n_kH_H2O_Cat2] = 0.00000e+00;
153 p[n_kH_H2O_Cat2s] = 0.00000e+00;
154 p[n_kH_H2O_Cat3] = 0.00000e+00;
155 p[n_kH_H2O_Cat3s] = 0.00000e+00;
156 p[n_kS_H2O_Cat1] = 0.00000e+00;
157 p[n_kS_H2O_Cat1s] = 0.00000e+00;
158 p[n_kS_H2O_Cat2] = 0.00000e+00;
159 p[n_kS_H2O_Cat2s] = 0.00000e+00;
160 p[n_kS_H2O_Cat3] = 0.00000e+00;
161 p[n_kS_H2O_Cat3s] = 0.00000e+00;
162 p[n_f_cat] = 1.00000e+00;
163 p[n_CS] = 0.00000e+00;
164 p[n_CH] = 1.00000e+00;
165 p[n_k_A1] = 3.00000e+00;
166 p[n_k_A0] = 3.00000e+00;
167 p[n_k_I1] = 3.00000e+00;
168 p[n_k_I2] = 4.00000e+00;
169 p[n_f_oh_a0] = 2.00000e+00;
170 p[n_f_oh_a2] = 2.00000e+00;
171 p[n_deltah_a0] = -8.30000e+01;
172 p[n_deltah_a1] = -8.30000e+01;
173 p[n_deltah_a2] = -8.00000e+01;
174 p[n_deltah_b1] = -4.70000e+01;
175 p[n_deltah_b2] = -1.27000e+02;
176 p[n_f_oh_a1] = 2.00000e+00;
177 p[n_f_oh_b] = 3.00000e+00;
178 p[n_f_oh_b2] = 4.00000e+00;
179 p[n_convcrit] = 9.99000e-01;
180 p[n_t_mix] = 1.00000e+00;
181 p[n_kzero] = 0.00000e+00;
182 p[n_kone] = 1.00000e+00;
183 p[n_ktwo] = 2.00000e+00;
184 p[n_kthree] = 3.00000e+00;
185 p[n_f_coeff_cross] = 0.00000e+00;
186 p[n_f_coeff_end] = 1.00000e+00;
187 p[n_f_coeff_cat] = 1.00000e+00;
188 p[n_t_phase_transfer_A] = 1.00000e+00;
189 p[n_kslow] = 1.00000e+00;
190 p[n_kfast] = 1.00000e+02;
191 p[n_kdummy] = 0.00000e+00;
192 p[n_bubble_conc] = 1.00000e+07;
193 p[n_bubble_diam] = 2.00000e-05;
194 p[n_diffusion] = 1.00000e-09;
195 p[n_sherwood] = 2.00000e+00;
196 p[n_cp_A0] = 3.08000e-01;
197 p[n_cp_I0] = 2.12500e-01;
198 p[n_cp_I1] = 2.28900e-01;
199 p[n_cp_I2] = 2.31000e-01;
200 p[n_cp_B2] = 7.52000e-02;
201 p[n_cp_PBA] = 2.00000e-01;
202 p[n_cp_Cat] = 2.00000e-01;
203 p[n_cp_A1] = 1.25400e-01;
205 void SetIniParamE(
double* p)
207 p[n_kH_prim_OH_EO_Solvent] = 3.40000e+03;
208 p[n_kS_prim_OH_EO_Solvent] = 3.40000e+03;
209 p[n_kS_sec_OH_PO_Solvent] = 6.00000e+03;
210 p[n_kH_sec_OH_PO_Solvent] = 5.49500e+03;
211 p[n_kS_prim_OH_BDO_Solvent] = 4.80000e+03;
212 p[n_kH_prim_OH_BDO_Solvent] = 3.21000e+03;
213 p[n_kS_prim_OH_EO_Cat1] = 5.00000e+03;
214 p[n_kS_prim_OH_EO_Cat2] = 2.50000e+03;
215 p[n_kH_sec_OH_PO_Cat1] = 4.60000e+03;
216 p[n_kS_prim_OH_EO_Cat3] = 4.00000e+03;
217 p[n_kH_prim_OH_EO_Cat1] = 3.00000e+03;
218 p[n_kS_sec_OH_PO_Cat1] = 0.00000e+00;
219 p[n_kH_prim_OH_EO_Cat2] = 3.50000e+03;
220 p[n_kH_prim_OH_EO_Cat3] = 2.50000e+03;
221 p[n_kH_sec_OH_PO_Cat2] = 4.50000e+03;
222 p[n_kH_sec_OH_PO_Cat3] = 3.50000e+03;
223 p[n_kS_sec_OH_PO_Cat2] = 4.50000e+03;
224 p[n_kS_sec_OH_PO_Cat3] = 4.50000e+03;
225 p[n_kS_prim_OH_BDO_Cat1] = 3.20000e+03;
226 p[n_kS_prim_OH_BDO_Cat2] = 3.20000e+03;
227 p[n_kS_prim_OH_BDO_Cat3] = 2.50000e+03;
228 p[n_kH_prim_OH_BDO_Cat1] = 3.00000e+03;
229 p[n_kH_prim_OH_BDO_Cat2] = 2.50000e+03;
230 p[n_kH_prim_OH_BDO_Cat3] = 2.50000e+03;
231 p[n_kH_H2O_prim] = 2.50000e+03;
232 p[n_kS_H2O_prim] = 2.40000e+03;
233 p[n_kH_H2O_sec] = 2.40000e+03;
234 p[n_kS_H2O_sec] = 2.40000e+03;
235 p[n_kH_H2O_BDO] = 2.40000e+03;
236 p[n_kS_H2O_BDO] = 2.40000e+03;
237 p[n_kH_H2O_H2O] = 4.50000e+03;
238 p[n_kS_H2O_H2O] = 4.50000e+03;
239 p[n_kH_H2O_Cat1] = 5.80000e+03;
240 p[n_kH_H2O_Cat1s] = 5.50000e+03;
241 p[n_kH_H2O_Cat2] = 2.50000e+03;
242 p[n_kH_H2O_Cat2s] = 2.50000e+03;
243 p[n_kH_H2O_Cat3] = 2.50000e+03;
244 p[n_kH_H2O_Cat3s] = 2.50000e+03;
245 p[n_kS_H2O_Cat1] = 3.00000e+03;
246 p[n_kS_H2O_Cat1s] = 5.50000e+03;
247 p[n_kS_H2O_Cat2] = 2.50000e+03;
248 p[n_kS_H2O_Cat2s] = 2.50000e+03;
249 p[n_kS_H2O_Cat3] = 2.50000e+03;
250 p[n_kS_H2O_Cat3s] = 2.50000e+03;
251 p[n_f_cat] = 0.00000e+00;
252 p[n_CS] = 0.00000e+00;
253 p[n_CH] = 0.00000e+00;
254 p[n_k_A1] = 0.00000e+00;
255 p[n_k_A0] = 0.00000e+00;
256 p[n_k_I1] = 0.00000e+00;
257 p[n_k_I2] = 0.00000e+00;
258 p[n_f_oh_a0] = 0.00000e+00;
259 p[n_f_oh_a2] = 0.00000e+00;
260 p[n_deltah_a0] = 0.00000e+00;
261 p[n_deltah_a1] = 0.00000e+00;
262 p[n_deltah_a2] = 0.00000e+00;
263 p[n_deltah_b1] = 0.00000e+00;
264 p[n_deltah_b2] = 0.00000e+00;
265 p[n_f_oh_a1] = 0.00000e+00;
266 p[n_f_oh_b] = 0.00000e+00;
267 p[n_f_oh_b2] = 0.00000e+00;
268 p[n_convcrit] = 0.00000e+00;
269 p[n_t_mix] = 0.00000e+00;
270 p[n_kzero] = 0.00000e+00;
271 p[n_kone] = 0.00000e+00;
272 p[n_ktwo] = 0.00000e+00;
273 p[n_kthree] = 0.00000e+00;
274 p[n_f_coeff_cross] = 0.00000e+00;
275 p[n_f_coeff_end] = 0.00000e+00;
276 p[n_f_coeff_cat] = 0.00000e+00;
277 p[n_t_phase_transfer_A] = 0.00000e+00;
278 p[n_kslow] = 0.00000e+00;
279 p[n_kfast] = 0.00000e+00;
280 p[n_kdummy] = 0.00000e+00;
281 p[n_bubble_conc] = 0.00000e+00;
282 p[n_bubble_diam] = 0.00000e+00;
283 p[n_diffusion] = 0.00000e+00;
284 p[n_sherwood] = 0.00000e+00;
285 p[n_cp_A0] = 0.00000e+00;
286 p[n_cp_I0] = 0.00000e+00;
287 p[n_cp_I1] = 0.00000e+00;
288 p[n_cp_I2] = 0.00000e+00;
289 p[n_cp_B2] = 0.00000e+00;
290 p[n_cp_PBA] = 0.00000e+00;
291 p[n_cp_Cat] = 0.00000e+00;
292 p[n_cp_A1] = 0.00000e+00;
294 void SetIniParamF(
double* p)
296 p[n_kH_prim_OH_EO_Solvent] = 1.30000e+02;
297 p[n_kS_prim_OH_EO_Solvent] = 1.30000e+02;
298 p[n_kS_sec_OH_PO_Solvent] = 2.00000e+03;
299 p[n_kH_sec_OH_PO_Solvent] = 1.70000e+04;
300 p[n_kS_prim_OH_BDO_Solvent] = 2.70000e+02;
301 p[n_kH_prim_OH_BDO_Solvent] = 2.10000e+02;
302 p[n_kS_prim_OH_EO_Cat1] = 6.80000e+02;
303 p[n_kS_prim_OH_EO_Cat2] = 7.00000e+02;
304 p[n_kH_sec_OH_PO_Cat1] = 3.00000e+02;
305 p[n_kS_prim_OH_EO_Cat3] = 7.00000e+02;
306 p[n_kH_prim_OH_EO_Cat1] = 5.00000e+02;
307 p[n_kS_sec_OH_PO_Cat1] = 4.00000e+02;
308 p[n_kH_prim_OH_EO_Cat2] = 8.00000e+02;
309 p[n_kH_prim_OH_EO_Cat3] = 5.00000e+02;
310 p[n_kH_sec_OH_PO_Cat2] = 7.50000e+03;
311 p[n_kH_sec_OH_PO_Cat3] = 8.00000e+03;
312 p[n_kS_sec_OH_PO_Cat2] = 7.00000e+03;
313 p[n_kS_sec_OH_PO_Cat3] = 8.00000e+03;
314 p[n_kS_prim_OH_BDO_Cat1] = 5.00000e+02;
315 p[n_kS_prim_OH_BDO_Cat2] = 8.00000e+02;
316 p[n_kS_prim_OH_BDO_Cat3] = 9.00000e+02;
317 p[n_kH_prim_OH_BDO_Cat1] = 9.00000e+02;
318 p[n_kH_prim_OH_BDO_Cat2] = 9.00000e+02;
319 p[n_kH_prim_OH_BDO_Cat3] = 7.00000e+02;
320 p[n_kH_H2O_prim] = 1.00000e+01;
321 p[n_kS_H2O_prim] = 1.00000e+01;
322 p[n_kH_H2O_sec] = 1.00000e+01;
323 p[n_kS_H2O_sec] = 1.00000e+01;
324 p[n_kH_H2O_BDO] = 1.00000e+01;
325 p[n_kS_H2O_BDO] = 1.00000e+01;
326 p[n_kH_H2O_H2O] = 1.00000e+01;
327 p[n_kS_H2O_H2O] = 1.00000e+01;
328 p[n_kH_H2O_Cat1] = 1.00000e+06;
329 p[n_kH_H2O_Cat1s] = 1.00000e+06;
330 p[n_kH_H2O_Cat2] = 5.00000e+01;
331 p[n_kH_H2O_Cat2s] = 5.00000e+01;
332 p[n_kH_H2O_Cat3] = 5.00000e+01;
333 p[n_kH_H2O_Cat3s] = 5.00000e+01;
334 p[n_kS_H2O_Cat1] = 1.00000e+02;
335 p[n_kS_H2O_Cat1s] = 1.00000e+06;
336 p[n_kS_H2O_Cat2] = 5.00000e+01;
337 p[n_kS_H2O_Cat2s] = 5.00000e+01;
338 p[n_kS_H2O_Cat3] = 5.00000e+01;
339 p[n_kS_H2O_Cat3s] = 5.00000e+01;
340 p[n_f_cat] = 0.00000e+00;
341 p[n_CS] = 0.00000e+00;
342 p[n_CH] = 0.00000e+00;
343 p[n_k_A1] = 0.00000e+00;
344 p[n_k_A0] = 0.00000e+00;
345 p[n_k_I1] = 0.00000e+00;
346 p[n_k_I2] = 0.00000e+00;
347 p[n_f_oh_a0] = 0.00000e+00;
348 p[n_f_oh_a2] = 0.00000e+00;
349 p[n_deltah_a0] = 0.00000e+00;
350 p[n_deltah_a1] = 0.00000e+00;
351 p[n_deltah_a2] = 0.00000e+00;
352 p[n_deltah_b1] = 0.00000e+00;
353 p[n_deltah_b2] = 0.00000e+00;
354 p[n_f_oh_a1] = 0.00000e+00;
355 p[n_f_oh_b] = 0.00000e+00;
356 p[n_f_oh_b2] = 0.00000e+00;
357 p[n_convcrit] = 0.00000e+00;
358 p[n_t_mix] = 0.00000e+00;
359 p[n_kzero] = 0.00000e+00;
360 p[n_kone] = 0.00000e+00;
361 p[n_ktwo] = 0.00000e+00;
362 p[n_kthree] = 0.00000e+00;
363 p[n_f_coeff_cross] = 0.00000e+00;
364 p[n_f_coeff_end] = 0.00000e+00;
365 p[n_f_coeff_cat] = 0.00000e+00;
366 p[n_t_phase_transfer_A] = 0.00000e+00;
367 p[n_kslow] = 0.00000e+00;
368 p[n_kfast] = 0.00000e+00;
369 p[n_kdummy] = 0.00000e+00;
370 p[n_bubble_conc] = 0.00000e+00;
371 p[n_bubble_diam] = 0.00000e+00;
372 p[n_diffusion] = 0.00000e+00;
373 p[n_sherwood] = 0.00000e+00;
374 p[n_cp_A0] = 0.00000e+00;
375 p[n_cp_I0] = 0.00000e+00;
376 p[n_cp_I1] = 0.00000e+00;
377 p[n_cp_I2] = 0.00000e+00;
378 p[n_cp_B2] = 0.00000e+00;
379 p[n_cp_PBA] = 0.00000e+00;
380 p[n_cp_Cat] = 0.00000e+00;
381 p[n_cp_A1] = 0.00000e+00;
383 void SetIniParamType(
double* p)
385 p[n_kH_prim_OH_EO_Solvent] = 1;
386 p[n_kS_prim_OH_EO_Solvent] = 1;
387 p[n_kS_sec_OH_PO_Solvent] = 1;
388 p[n_kH_sec_OH_PO_Solvent] = 1;
389 p[n_kS_prim_OH_BDO_Solvent] = 1;
390 p[n_kH_prim_OH_BDO_Solvent] = 1;
391 p[n_kS_prim_OH_EO_Cat1] = 1;
392 p[n_kS_prim_OH_EO_Cat2] = 1;
393 p[n_kH_sec_OH_PO_Cat1] = 1;
394 p[n_kS_prim_OH_EO_Cat3] = 1;
395 p[n_kH_prim_OH_EO_Cat1] = 1;
396 p[n_kS_sec_OH_PO_Cat1] = 1;
397 p[n_kH_prim_OH_EO_Cat2] = 1;
398 p[n_kH_prim_OH_EO_Cat3] = 1;
399 p[n_kH_sec_OH_PO_Cat2] = 1;
400 p[n_kH_sec_OH_PO_Cat3] = 1;
401 p[n_kS_sec_OH_PO_Cat2] = 1;
402 p[n_kS_sec_OH_PO_Cat3] = 1;
403 p[n_kS_prim_OH_BDO_Cat1] = 1;
404 p[n_kS_prim_OH_BDO_Cat2] = 1;
405 p[n_kS_prim_OH_BDO_Cat3] = 1;
406 p[n_kH_prim_OH_BDO_Cat1] = 1;
407 p[n_kH_prim_OH_BDO_Cat2] = 1;
408 p[n_kH_prim_OH_BDO_Cat3] = 1;
409 p[n_kH_H2O_prim] = 1;
410 p[n_kS_H2O_prim] = 1;
417 p[n_kH_H2O_Cat1] = 1;
418 p[n_kH_H2O_Cat1s] = 1;
419 p[n_kH_H2O_Cat2] = 1;
420 p[n_kH_H2O_Cat2s] = 1;
421 p[n_kH_H2O_Cat3] = 1;
422 p[n_kH_H2O_Cat3s] = 1;
423 p[n_kS_H2O_Cat1] = 1;
424 p[n_kS_H2O_Cat1s] = 1;
425 p[n_kS_H2O_Cat2] = 1;
426 p[n_kS_H2O_Cat2s] = 1;
427 p[n_kS_H2O_Cat3] = 1;
428 p[n_kS_H2O_Cat3s] = 1;
452 p[n_f_coeff_cross] = 0;
453 p[n_f_coeff_end] = 0;
454 p[n_f_coeff_cat] = 0;
455 p[n_t_phase_transfer_A] = 0;
459 p[n_bubble_conc] = 0;
460 p[n_bubble_diam] = 0;
472 void SetFixedIniParam(
double* p,
double* pC,
double Temp,
double RG)
481 p[i] = pGlobalIso[i];
482 if (pGlobalType[i] == 1)p[i] = pGlobalF[i]*exp(-pGlobalE[i]/RG/(Temp + Kelvin));
486 void SetGlobalIniParam()
488 SetIniParam(pGlobalIso);
489 SetIniParamE(pGlobalE);
490 SetIniParamF(pGlobalF);
491 SetIniParamType(pGlobalType);
493 int GetReacIndex(
int reactorIndex);
494 double getkp(
double* pArray,
int paramIndex);
495 double gettemp(
double* xArray,
int reacIndex);
496 double getco(
double* xArray,
int stateIndex);
497 int GetReacIndex(
int reactorIndex)
504 double getkp(
double* pArray,
int paramIndex)
508 if(no > noConst)
return 0.0;
509 result1 = pArray[no];
512 double gettemp(
double* xArray,
int reacIndex)
515 int no = GetReacIndex(reacIndex) + 2;
516 if(no >= DIM)
return 0.0;
517 result1 = xArray[no];
520 double getco(
double* xArray,
int stateIndex)
524 if(no >= DIM)
return 0.0;
525 if (xArray != 0)
return xArray[no];
528 void f_f_rate_coeff_a0(
double* xArray,
double* pArray,
double arg1,
double arg2,
double* results);
529 double f_f_rate_coefficient(
double* xArray,
double* pArray,
double arg1,
double arg2);
530 void f_f_rate_coeff_a1(
double* xArray,
double* pArray,
double arg1,
double arg2,
double* results);
531 void f_f_rate_coeff_b2(
double* xArray,
double* pArray,
double arg1,
double arg2,
double* results);
532 void f_f_rate_coeff_b1(
double* xArray,
double* pArray,
double arg1,
double arg2,
double* results);
533 void f_f_rate_coeff_a0(
double* xArray,
double* pArray,
double arg1,
double arg2,
double* results)
537 double f_rate_coeff = 0;
542 f_oh_a = getkp(pArray, n_f_oh_a0) ;
543 deltah = getkp(pArray, n_deltah_a0) ;
544 f_rate_coeff = f_f_rate_coefficient(xArray, pArray,f_oh_a,0) ;
545 time_mix = getkp(pArray, n_t_phase_transfer_A) ;
551 results[0] = f_rate_coeff ;
556 double f_f_rate_coefficient(
double* xArray,
double* pArray,
double arg1,
double arg2)
558 double f_end_group = 0;
562 double fka_Cat_S1 = 0;
563 double fka_Cat_H1 = 0;
564 double fka_Cat_S2 = 0;
565 double fka_Cat_H2 = 0;
566 double fka_Cat_S3 = 0;
567 double fka_Cat_H3 = 0;
568 double fka_prim_S = 0;
569 double fka_sec_S = 0;
570 double fka_BDO_S = 0;
571 double fka_H2O_S = 0;
572 double fka_prim_H = 0;
573 double fka_sec_H = 0;
574 double fka_BDO_H = 0;
575 double fka_H2O_H = 0;
592 double coefficient = 0;
595 f_oh_a0 = getkp(pArray, n_f_oh_a0) ;
596 f_oh_a1 = getkp(pArray, n_f_oh_a1) ;
597 f_cat = getkp(pArray, n_f_cat) ;
598 if ( f_end_group == 0 )
600 fka_Cat_S1 = getkp(pArray, n_kS_prim_OH_BDO_Cat1) ;
601 fka_Cat_H1 = getkp(pArray, n_kH_prim_OH_BDO_Cat1) ;
602 fka_Cat_S2 = getkp(pArray, n_kS_prim_OH_BDO_Cat2) ;
603 fka_Cat_H2 = getkp(pArray, n_kH_prim_OH_BDO_Cat2) ;
604 fka_Cat_S3 = getkp(pArray, n_kS_prim_OH_BDO_Cat3) ;
605 fka_Cat_H3 = getkp(pArray, n_kH_prim_OH_BDO_Cat3) ;
606 fka_prim_S = getkp(pArray, n_kS_prim_OH_BDO_Solvent) ;
607 fka_sec_S = getkp(pArray, n_kS_prim_OH_BDO_Solvent) ;
608 fka_BDO_S = getkp(pArray, n_kS_prim_OH_BDO_Solvent) ;
609 fka_H2O_S = getkp(pArray, n_kS_prim_OH_BDO_Solvent) ;
610 fka_prim_H = getkp(pArray, n_kH_prim_OH_BDO_Solvent) ;
611 fka_sec_H = getkp(pArray, n_kH_prim_OH_BDO_Solvent) ;
612 fka_BDO_H = getkp(pArray, n_kH_prim_OH_BDO_Solvent) ;
613 fka_H2O_H = getkp(pArray, n_kH_prim_OH_BDO_Solvent) ;
615 if ( f_end_group == 1 )
617 fka_Cat_S1 = getkp(pArray, n_kS_prim_OH_EO_Cat1) ;
618 fka_Cat_H1 = getkp(pArray, n_kH_prim_OH_EO_Cat1) ;
619 fka_Cat_S2 = getkp(pArray, n_kS_prim_OH_EO_Cat2) ;
620 fka_Cat_H2 = getkp(pArray, n_kH_prim_OH_EO_Cat2) ;
621 fka_Cat_S3 = getkp(pArray, n_kS_prim_OH_EO_Cat3) ;
622 fka_Cat_H3 = getkp(pArray, n_kH_prim_OH_EO_Cat3) ;
623 fka_prim_S = getkp(pArray, n_kS_prim_OH_EO_Solvent) ;
624 fka_sec_S = getkp(pArray, n_kS_prim_OH_EO_Solvent) ;
625 fka_BDO_S = getkp(pArray, n_kS_prim_OH_EO_Solvent) ;
626 fka_H2O_S = getkp(pArray, n_kS_prim_OH_EO_Solvent) ;
627 fka_prim_H = getkp(pArray, n_kH_prim_OH_EO_Solvent) ;
628 fka_sec_H = getkp(pArray, n_kH_prim_OH_EO_Solvent) ;
629 fka_BDO_H = getkp(pArray, n_kH_prim_OH_EO_Solvent) ;
630 fka_H2O_H = getkp(pArray, n_kH_prim_OH_EO_Solvent) ;
632 if ( f_end_group == 2 )
634 fka_Cat_S1 = getkp(pArray, n_kS_sec_OH_PO_Cat1) ;
635 fka_Cat_H1 = getkp(pArray, n_kH_sec_OH_PO_Cat1) ;
636 fka_Cat_S2 = getkp(pArray, n_kS_sec_OH_PO_Cat2) ;
637 fka_Cat_H2 = getkp(pArray, n_kH_sec_OH_PO_Cat2) ;
638 fka_Cat_S3 = getkp(pArray, n_kS_sec_OH_PO_Cat3) ;
639 fka_Cat_H3 = getkp(pArray, n_kH_sec_OH_PO_Cat3) ;
640 fka_prim_S = getkp(pArray, n_kS_sec_OH_PO_Solvent) ;
641 fka_sec_S = getkp(pArray, n_kS_sec_OH_PO_Solvent) ;
642 fka_BDO_S = getkp(pArray, n_kS_sec_OH_PO_Solvent) ;
643 fka_H2O_S = getkp(pArray, n_kS_sec_OH_PO_Solvent) ;
644 fka_prim_H = getkp(pArray, n_kH_sec_OH_PO_Solvent) ;
645 fka_sec_H = getkp(pArray, n_kH_sec_OH_PO_Solvent) ;
646 fka_BDO_H = getkp(pArray, n_kH_sec_OH_PO_Solvent) ;
647 fka_H2O_H = getkp(pArray, n_kH_sec_OH_PO_Solvent) ;
649 if ( f_end_group == 3 )
651 fka_Cat_S1 = getkp(pArray, n_kS_H2O_Cat1) ;
652 fka_Cat_H1 = getkp(pArray, n_kH_H2O_Cat1) ;
653 fka_Cat_S2 = getkp(pArray, n_kS_H2O_Cat2) ;
654 fka_Cat_H2 = getkp(pArray, n_kH_H2O_Cat2) ;
655 fka_Cat_S3 = getkp(pArray, n_kS_H2O_Cat3) ;
656 fka_Cat_H3 = getkp(pArray, n_kH_H2O_Cat3) ;
657 fka_prim_S = getkp(pArray, n_kS_H2O_prim) ;
658 fka_sec_S = getkp(pArray, n_kS_H2O_sec) ;
659 fka_BDO_S = getkp(pArray, n_kS_H2O_BDO) ;
660 fka_H2O_S = getkp(pArray, n_kS_H2O_H2O) ;
661 fka_prim_H = getkp(pArray, n_kH_H2O_prim) ;
662 fka_sec_H = getkp(pArray, n_kH_H2O_sec) ;
663 fka_BDO_H = getkp(pArray, n_kH_H2O_BDO) ;
664 fka_H2O_H = getkp(pArray, n_kH_H2O_H2O) ;
666 if ( f_end_group == 4 )
668 fka_Cat_S1 = getkp(pArray, n_kS_H2O_Cat1s) ;
669 fka_Cat_H1 = getkp(pArray, n_kH_H2O_Cat1s) ;
670 fka_Cat_S2 = getkp(pArray, n_kS_H2O_Cat2s) ;
671 fka_Cat_H2 = getkp(pArray, n_kH_H2O_Cat2s) ;
672 fka_Cat_S3 = getkp(pArray, n_kS_H2O_Cat3s) ;
673 fka_Cat_H3 = getkp(pArray, n_kH_H2O_Cat3s) ;
675 cA0 = getco(xArray, n_CE_A0) ;
676 cA1 = getco(xArray, n_CE_A1) ;
677 cH2O = getco(xArray, n_CE_B2) ;
678 cCat1 = getco(xArray, n_Catalyst_1) ;
690 cprim = cprim + cA0 ;
705 cprim = cprim + cA1 ;
712 fka_S = cprim * fka_prim_S + csec * fka_sec_S + cBDO * fka_BDO_S + cH2O * fka_H2O_S + cCat1 * fka_Cat_S1 ;
713 fka_H = cCat1 * fka_Cat_H1 + fka_sec_H ;
714 CCA1 = (getco(xArray, n_CE_Areac1) + getco(xArray, n_CE_A1)) * (getkp(pArray, n_k_A1) - 2)/getkp(pArray, n_k_A1) ;
715 CCI1 = (getco(xArray, n_CE_Ireac1) + getco(xArray, n_CE_I1)) * (getkp(pArray, n_k_I1) - 2)/getkp(pArray, n_k_I1) ;
716 CCI2 = (getco(xArray, n_CE_Ireac2) + getco(xArray, n_CE_I2)) * (getkp(pArray, n_k_I2) - 2)/getkp(pArray, n_k_I2) ;
717 C0 = CCA1 + CCI1 + CCI2 ;
718 CS = getkp(pArray, n_CS) ;
719 CH = getkp(pArray, n_CH) ;
720 factor = (min(CH,max(C0,CS)) - CS)/(CH - CS) ;
721 coefficient = fka_H ;
722 result1 = coefficient ;
725 void f_f_rate_coeff_a1(
double* xArray,
double* pArray,
double arg1,
double arg2,
double* results)
729 double f_rate_coeff = 0;
734 f_oh_a = getkp(pArray, n_f_oh_a1) ;
735 deltah = getkp(pArray, n_deltah_a1) ;
736 f_rate_coeff = f_f_rate_coefficient(xArray, pArray,f_oh_a,0) ;
737 time_mix = getkp(pArray, n_t_phase_transfer_A) ;
743 results[0] = f_rate_coeff ;
748 void f_f_rate_coeff_b2(
double* xArray,
double* pArray,
double arg1,
double arg2,
double* results)
752 double f_rate_coeff = 0;
755 f_oh_b2 = getkp(pArray, n_f_oh_b2) ;
756 deltah = getkp(pArray, n_deltah_b2) ;
757 f_rate_coeff = f_f_rate_coefficient(xArray, pArray,f_oh_b2,0) ;
758 results[0] = f_rate_coeff ;
763 void f_f_rate_coeff_b1(
double* xArray,
double* pArray,
double arg1,
double arg2,
double* results)
767 double f_rate_coeff = 0;
772 f_oh_b = getkp(pArray, n_f_oh_b) ;
773 deltah = getkp(pArray, n_deltah_b1) ;
774 f_rate_coeff = f_f_rate_coefficient(xArray, pArray,f_oh_b,0) ;
775 time_mix = getkp(pArray, n_t_mix) ;
779 f_rate_coeff = 0.01 * f_rate_coeff ;
781 results[0] = f_rate_coeff ;
786 void F(
double* x,
double t,
double* fx)
793 double x_Catalyst_1 = x[n_Catalyst_1];
794 double x_CE_A0 = x[n_CE_A0];
795 double x_CE_A1 = x[n_CE_A1];
796 double x_CE_B = x[n_CE_B];
797 double x_CE_B2 = x[n_CE_B2];
798 double x_CE_I0 = x[n_CE_I0];
799 double x_CE_I1 = x[n_CE_I1];
800 double x_CE_I2 = x[n_CE_I2];
801 double x_CE_PBA = x[n_CE_PBA];
802 double x_CE_Breac = x[n_CE_Breac];
803 double x_CE_Areac0 = x[n_CE_Areac0];
804 double x_CE_Areac1 = x[n_CE_Areac1];
805 double x_CE_Ireac0 = x[n_CE_Ireac0];
806 double x_CE_Ireac1 = x[n_CE_Ireac1];
807 double x_CE_Ireac2 = x[n_CE_Ireac2];
808 double x_Bulk = x[n_Bulk];
810 double T = gettemp(x, 1);
811 SetFixedIniParam(p, pControl, T, RGas);
812 double kzero = getkp(p, n_kzero);
813 double kone = getkp(p, n_kone);
814 double kdummy = getkp(p, n_kdummy);
821 f_f_rate_coeff_a0(x, p,k1, k2, results);
824 fx[n_CE_A0] += -k1 * kone * pow( x_CE_A0, kone) * pow( x_CE_I0, kone) +k2 * kone * pow( x_CE_Areac0, kone) * pow( x_CE_Ireac0, kone);
825 fx[n_CE_I0] += -k1 * kone * pow( x_CE_A0, kone) * pow( x_CE_I0, kone) +k2 * kone * pow( x_CE_Areac0, kone) * pow( x_CE_Ireac0, kone);
826 fx[n_CE_Areac0] += +k1 * kone * pow( x_CE_A0, kone) * pow( x_CE_I0, kone) -k2 * kone * pow( x_CE_Areac0, kone) * pow( x_CE_Ireac0, kone);
827 fx[n_CE_Ireac0] += +k1 * kone * pow( x_CE_A0, kone) * pow( x_CE_I0, kone) -k2 * kone * pow( x_CE_Areac0, kone) * pow( x_CE_Ireac0, kone);
830 f_f_rate_coeff_a1(x, p,k1, k2, results);
833 fx[n_CE_A1] += -k1 * kone * pow( x_CE_A1, kone) * pow( x_CE_I0, kone) +k2 * kone * pow( x_CE_Areac1, kone) * pow( x_CE_Ireac0, kone);
834 fx[n_CE_I0] += -k1 * kone * pow( x_CE_A1, kone) * pow( x_CE_I0, kone) +k2 * kone * pow( x_CE_Areac1, kone) * pow( x_CE_Ireac0, kone);
835 fx[n_CE_Areac1] += +k1 * kone * pow( x_CE_A1, kone) * pow( x_CE_I0, kone) -k2 * kone * pow( x_CE_Areac1, kone) * pow( x_CE_Ireac0, kone);
836 fx[n_CE_Ireac0] += +k1 * kone * pow( x_CE_A1, kone) * pow( x_CE_I0, kone) -k2 * kone * pow( x_CE_Areac1, kone) * pow( x_CE_Ireac0, kone);
839 f_f_rate_coeff_a0(x, p,k1, k2, results);
842 fx[n_CE_A0] += -k1 * kone * pow( x_CE_A0, kone) * pow( x_CE_I1, kone) +k2 * kone * pow( x_CE_Areac0, kone) * pow( x_CE_Ireac1, kone);
843 fx[n_CE_I1] += -k1 * kone * pow( x_CE_A0, kone) * pow( x_CE_I1, kone) +k2 * kone * pow( x_CE_Areac0, kone) * pow( x_CE_Ireac1, kone);
844 fx[n_CE_Areac0] += +k1 * kone * pow( x_CE_A0, kone) * pow( x_CE_I1, kone) -k2 * kone * pow( x_CE_Areac0, kone) * pow( x_CE_Ireac1, kone);
845 fx[n_CE_Ireac1] += +k1 * kone * pow( x_CE_A0, kone) * pow( x_CE_I1, kone) -k2 * kone * pow( x_CE_Areac0, kone) * pow( x_CE_Ireac1, kone);
848 f_f_rate_coeff_a1(x, p,k1, k2, results);
851 fx[n_CE_A1] += -k1 * kone * pow( x_CE_A1, kone) * pow( x_CE_I1, kone) +k2 * kone * pow( x_CE_Areac1, kone) * pow( x_CE_Ireac1, kone);
852 fx[n_CE_I1] += -k1 * kone * pow( x_CE_A1, kone) * pow( x_CE_I1, kone) +k2 * kone * pow( x_CE_Areac1, kone) * pow( x_CE_Ireac1, kone);
853 fx[n_CE_Areac1] += +k1 * kone * pow( x_CE_A1, kone) * pow( x_CE_I1, kone) -k2 * kone * pow( x_CE_Areac1, kone) * pow( x_CE_Ireac1, kone);
854 fx[n_CE_Ireac1] += +k1 * kone * pow( x_CE_A1, kone) * pow( x_CE_I1, kone) -k2 * kone * pow( x_CE_Areac1, kone) * pow( x_CE_Ireac1, kone);
857 f_f_rate_coeff_a0(x, p,k1, k2, results);
860 fx[n_CE_A0] += -k1 * kone * pow( x_CE_A0, kone) * pow( x_CE_I2, kone) +k2 * kone * pow( x_CE_Areac0, kone) * pow( x_CE_Ireac2, kone);
861 fx[n_CE_I2] += -k1 * kone * pow( x_CE_A0, kone) * pow( x_CE_I2, kone) +k2 * kone * pow( x_CE_Areac0, kone) * pow( x_CE_Ireac2, kone);
862 fx[n_CE_Areac0] += +k1 * kone * pow( x_CE_A0, kone) * pow( x_CE_I2, kone) -k2 * kone * pow( x_CE_Areac0, kone) * pow( x_CE_Ireac2, kone);
863 fx[n_CE_Ireac2] += +k1 * kone * pow( x_CE_A0, kone) * pow( x_CE_I2, kone) -k2 * kone * pow( x_CE_Areac0, kone) * pow( x_CE_Ireac2, kone);
866 f_f_rate_coeff_a1(x, p,k1, k2, results);
869 fx[n_CE_A1] += -k1 * kone * pow( x_CE_A1, kone) * pow( x_CE_I2, kone) +k2 * kone * pow( x_CE_Areac1, kone) * pow( x_CE_Ireac2, kone);
870 fx[n_CE_I2] += -k1 * kone * pow( x_CE_A1, kone) * pow( x_CE_I2, kone) +k2 * kone * pow( x_CE_Areac1, kone) * pow( x_CE_Ireac2, kone);
871 fx[n_CE_Areac1] += +k1 * kone * pow( x_CE_A1, kone) * pow( x_CE_I2, kone) -k2 * kone * pow( x_CE_Areac1, kone) * pow( x_CE_Ireac2, kone);
872 fx[n_CE_Ireac2] += +k1 * kone * pow( x_CE_A1, kone) * pow( x_CE_I2, kone) -k2 * kone * pow( x_CE_Areac1, kone) * pow( x_CE_Ireac2, kone);
875 f_f_rate_coeff_b2(x, p,k1, k2, results);
878 fx[n_CE_B] += -k1 * kone * pow( x_CE_B, kone) * pow( x_CE_I0, kone) +k2 * kone * pow( x_CE_Breac, kone) * pow( x_CE_Ireac0, kone);
879 fx[n_CE_I0] += -k1 * kone * pow( x_CE_B, kone) * pow( x_CE_I0, kone) +k2 * kone * pow( x_CE_Breac, kone) * pow( x_CE_Ireac0, kone);
880 fx[n_CE_Breac] += +k1 * kone * pow( x_CE_B, kone) * pow( x_CE_I0, kone) -k2 * kone * pow( x_CE_Breac, kone) * pow( x_CE_Ireac0, kone);
881 fx[n_CE_Ireac0] += +k1 * kone * pow( x_CE_B, kone) * pow( x_CE_I0, kone) -k2 * kone * pow( x_CE_Breac, kone) * pow( x_CE_Ireac0, kone);
884 f_f_rate_coeff_b2(x, p,k1, k2, results);
887 fx[n_CE_B] += -k1 * kone * pow( x_CE_B, kone) * pow( x_CE_I2, kone) +k2 * kone * pow( x_CE_Breac, kone) * pow( x_CE_Ireac2, kone);
888 fx[n_CE_I2] += -k1 * kone * pow( x_CE_B, kone) * pow( x_CE_I2, kone) +k2 * kone * pow( x_CE_Breac, kone) * pow( x_CE_Ireac2, kone);
889 fx[n_CE_Breac] += +k1 * kone * pow( x_CE_B, kone) * pow( x_CE_I2, kone) -k2 * kone * pow( x_CE_Breac, kone) * pow( x_CE_Ireac2, kone);
890 fx[n_CE_Ireac2] += +k1 * kone * pow( x_CE_B, kone) * pow( x_CE_I2, kone) -k2 * kone * pow( x_CE_Breac, kone) * pow( x_CE_Ireac2, kone);
893 f_f_rate_coeff_b2(x, p,k1, k2, results);
896 fx[n_CE_B] += -k1 * kone * pow( x_CE_B, kone) * pow( x_CE_I1, kone) +k2 * kone * pow( x_CE_Breac, kone) * pow( x_CE_Ireac1, kone);
897 fx[n_CE_I1] += -k1 * kone * pow( x_CE_B, kone) * pow( x_CE_I1, kone) +k2 * kone * pow( x_CE_Breac, kone) * pow( x_CE_Ireac1, kone);
898 fx[n_CE_Breac] += +k1 * kone * pow( x_CE_B, kone) * pow( x_CE_I1, kone) -k2 * kone * pow( x_CE_Breac, kone) * pow( x_CE_Ireac1, kone);
899 fx[n_CE_Ireac1] += +k1 * kone * pow( x_CE_B, kone) * pow( x_CE_I1, kone) -k2 * kone * pow( x_CE_Breac, kone) * pow( x_CE_Ireac1, kone);
902 f_f_rate_coeff_b1(x, p,k1, k2, results);
905 fx[n_CE_B2] += -k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I0, kone) +k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Ireac0, kone) * pow( x_CE_Breac, kone);
906 fx[n_CE_I0] += -k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I0, kone) +k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Ireac0, kone) * pow( x_CE_Breac, kone);
907 fx[n_CE_B] += +k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I0, kone) -k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Ireac0, kone) * pow( x_CE_Breac, kone);
908 fx[n_CE_Ireac0] += +k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I0, kone) -k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Ireac0, kone) * pow( x_CE_Breac, kone);
909 fx[n_CE_Breac] += +k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I0, kone) -k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Ireac0, kone) * pow( x_CE_Breac, kone);
912 f_f_rate_coeff_b1(x, p,k1, k2, results);
915 fx[n_CE_B2] += -k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I1, kone) +k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Breac, kone) * pow( x_CE_Ireac1, kone);
916 fx[n_CE_I1] += -k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I1, kone) +k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Breac, kone) * pow( x_CE_Ireac1, kone);
917 fx[n_CE_B] += +k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I1, kone) -k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Breac, kone) * pow( x_CE_Ireac1, kone);
918 fx[n_CE_Breac] += +k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I1, kone) -k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Breac, kone) * pow( x_CE_Ireac1, kone);
919 fx[n_CE_Ireac1] += +k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I1, kone) -k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Breac, kone) * pow( x_CE_Ireac1, kone);
922 f_f_rate_coeff_b1(x, p,k1, k2, results);
925 fx[n_CE_B2] += -k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I2, kone) +k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Breac, kone) * pow( x_CE_Ireac2, kone);
926 fx[n_CE_I2] += -k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I2, kone) +k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Breac, kone) * pow( x_CE_Ireac2, kone);
927 fx[n_CE_B] += +k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I2, kone) -k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Breac, kone) * pow( x_CE_Ireac2, kone);
928 fx[n_CE_Breac] += +k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I2, kone) -k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Breac, kone) * pow( x_CE_Ireac2, kone);
929 fx[n_CE_Ireac2] += +k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I2, kone) -k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Breac, kone) * pow( x_CE_Ireac2, kone);
936 void A(
double* x,
double t,
double* fx)
942 double x_Catalyst_1 = x[n_Catalyst_1];
943 double x_CE_A0 = x[n_CE_A0];
944 double x_CE_A1 = x[n_CE_A1];
945 double x_CE_B = x[n_CE_B];
946 double x_CE_B2 = x[n_CE_B2];
947 double x_CE_I0 = x[n_CE_I0];
948 double x_CE_I1 = x[n_CE_I1];
949 double x_CE_I2 = x[n_CE_I2];
950 double x_CE_PBA = x[n_CE_PBA];
951 double x_CE_Breac = x[n_CE_Breac];
952 double x_CE_Areac0 = x[n_CE_Areac0];
953 double x_CE_Areac1 = x[n_CE_Areac1];
954 double x_CE_Ireac0 = x[n_CE_Ireac0];
955 double x_CE_Ireac1 = x[n_CE_Ireac1];
956 double x_CE_Ireac2 = x[n_CE_Ireac2];
957 double x_Bulk = x[n_Bulk];
959 double T = gettemp(x, 1);
960 SetFixedIniParam(p, pControl, T, RGas);
961 double kzero = getkp(p, n_kzero);
962 double kone = getkp(p, n_kone);
963 double kdummy = getkp(p, n_kdummy);
965 for (ii = 0;ii<20;ii++) fx[ii] = 0;
970 f_f_rate_coeff_a0(x, p,k1, k2, results);
974 fx[n_CE_A0] += -k1 * kone * pow( x_CE_A0, kone) * pow( x_CE_I0, kone) +k2 * kone * pow( x_CE_Areac0, kone) * pow( x_CE_Ireac0, kone);
975 fx[n_CE_I0] += -k1 * kone * pow( x_CE_A0, kone) * pow( x_CE_I0, kone) +k2 * kone * pow( x_CE_Areac0, kone) * pow( x_CE_Ireac0, kone);
976 fx[n_CE_Areac0] += +k1 * kone * pow( x_CE_A0, kone) * pow( x_CE_I0, kone) -k2 * kone * pow( x_CE_Areac0, kone) * pow( x_CE_Ireac0, kone);
977 fx[n_CE_Ireac0] += +k1 * kone * pow( x_CE_A0, kone) * pow( x_CE_I0, kone) -k2 * kone * pow( x_CE_Areac0, kone) * pow( x_CE_Ireac0, kone);
980 f_f_rate_coeff_a1(x, p,k1, k2, results);
984 fx[n_CE_A1] += -k1 * kone * pow( x_CE_A1, kone) * pow( x_CE_I0, kone) +k2 * kone * pow( x_CE_Areac1, kone) * pow( x_CE_Ireac0, kone);
985 fx[n_CE_I0] += -k1 * kone * pow( x_CE_A1, kone) * pow( x_CE_I0, kone) +k2 * kone * pow( x_CE_Areac1, kone) * pow( x_CE_Ireac0, kone);
986 fx[n_CE_Areac1] += +k1 * kone * pow( x_CE_A1, kone) * pow( x_CE_I0, kone) -k2 * kone * pow( x_CE_Areac1, kone) * pow( x_CE_Ireac0, kone);
987 fx[n_CE_Ireac0] += +k1 * kone * pow( x_CE_A1, kone) * pow( x_CE_I0, kone) -k2 * kone * pow( x_CE_Areac1, kone) * pow( x_CE_Ireac0, kone);
990 f_f_rate_coeff_a0(x, p,k1, k2, results);
994 fx[n_CE_A0] += -k1 * kone * pow( x_CE_A0, kone) * pow( x_CE_I1, kone) +k2 * kone * pow( x_CE_Areac0, kone) * pow( x_CE_Ireac1, kone);
995 fx[n_CE_I1] += -k1 * kone * pow( x_CE_A0, kone) * pow( x_CE_I1, kone) +k2 * kone * pow( x_CE_Areac0, kone) * pow( x_CE_Ireac1, kone);
996 fx[n_CE_Areac0] += +k1 * kone * pow( x_CE_A0, kone) * pow( x_CE_I1, kone) -k2 * kone * pow( x_CE_Areac0, kone) * pow( x_CE_Ireac1, kone);
997 fx[n_CE_Ireac1] += +k1 * kone * pow( x_CE_A0, kone) * pow( x_CE_I1, kone) -k2 * kone * pow( x_CE_Areac0, kone) * pow( x_CE_Ireac1, kone);
1000 f_f_rate_coeff_a1(x, p,k1, k2, results);
1003 fx[n_CE_A1] += -k1 * kone * pow( x_CE_A1, kone) * pow( x_CE_I1, kone) +k2 * kone * pow( x_CE_Areac1, kone) * pow( x_CE_Ireac1, kone);
1004 fx[n_CE_I1] += -k1 * kone * pow( x_CE_A1, kone) * pow( x_CE_I1, kone) +k2 * kone * pow( x_CE_Areac1, kone) * pow( x_CE_Ireac1, kone);
1005 fx[n_CE_Areac1] += +k1 * kone * pow( x_CE_A1, kone) * pow( x_CE_I1, kone) -k2 * kone * pow( x_CE_Areac1, kone) * pow( x_CE_Ireac1, kone);
1006 fx[n_CE_Ireac1] += +k1 * kone * pow( x_CE_A1, kone) * pow( x_CE_I1, kone) -k2 * kone * pow( x_CE_Areac1, kone) * pow( x_CE_Ireac1, kone);
1009 f_f_rate_coeff_a0(x, p,k1, k2, results);
1012 fx[n_CE_A0] += -k1 * kone * pow( x_CE_A0, kone) * pow( x_CE_I2, kone) +k2 * kone * pow( x_CE_Areac0, kone) * pow( x_CE_Ireac2, kone);
1013 fx[n_CE_I2] += -k1 * kone * pow( x_CE_A0, kone) * pow( x_CE_I2, kone) +k2 * kone * pow( x_CE_Areac0, kone) * pow( x_CE_Ireac2, kone);
1014 fx[n_CE_Areac0] += +k1 * kone * pow( x_CE_A0, kone) * pow( x_CE_I2, kone) -k2 * kone * pow( x_CE_Areac0, kone) * pow( x_CE_Ireac2, kone);
1015 fx[n_CE_Ireac2] += +k1 * kone * pow( x_CE_A0, kone) * pow( x_CE_I2, kone) -k2 * kone * pow( x_CE_Areac0, kone) * pow( x_CE_Ireac2, kone);
1018 f_f_rate_coeff_a1(x, p,k1, k2, results);
1021 fx[n_CE_A1] += -k1 * kone * pow( x_CE_A1, kone) * pow( x_CE_I2, kone) +k2 * kone * pow( x_CE_Areac1, kone) * pow( x_CE_Ireac2, kone);
1022 fx[n_CE_I2] += -k1 * kone * pow( x_CE_A1, kone) * pow( x_CE_I2, kone) +k2 * kone * pow( x_CE_Areac1, kone) * pow( x_CE_Ireac2, kone);
1023 fx[n_CE_Areac1] += +k1 * kone * pow( x_CE_A1, kone) * pow( x_CE_I2, kone) -k2 * kone * pow( x_CE_Areac1, kone) * pow( x_CE_Ireac2, kone);
1024 fx[n_CE_Ireac2] += +k1 * kone * pow( x_CE_A1, kone) * pow( x_CE_I2, kone) -k2 * kone * pow( x_CE_Areac1, kone) * pow( x_CE_Ireac2, kone);
1027 f_f_rate_coeff_b2(x, p,k1, k2, results);
1031 fx[n_CE_B] += -k1 * kone * pow( x_CE_B, kone) * pow( x_CE_I0, kone) +k2 * kone * pow( x_CE_Breac, kone) * pow( x_CE_Ireac0, kone);
1032 fx[n_CE_I0] += -k1 * kone * pow( x_CE_B, kone) * pow( x_CE_I0, kone) +k2 * kone * pow( x_CE_Breac, kone) * pow( x_CE_Ireac0, kone);
1033 fx[n_CE_Breac] += +k1 * kone * pow( x_CE_B, kone) * pow( x_CE_I0, kone) -k2 * kone * pow( x_CE_Breac, kone) * pow( x_CE_Ireac0, kone);
1034 fx[n_CE_Ireac0] += +k1 * kone * pow( x_CE_B, kone) * pow( x_CE_I0, kone) -k2 * kone * pow( x_CE_Breac, kone) * pow( x_CE_Ireac0, kone);
1037 f_f_rate_coeff_b2(x, p,k1, k2, results);
1040 fx[n_CE_B] += -k1 * kone * pow( x_CE_B, kone) * pow( x_CE_I2, kone) +k2 * kone * pow( x_CE_Breac, kone) * pow( x_CE_Ireac2, kone);
1041 fx[n_CE_I2] += -k1 * kone * pow( x_CE_B, kone) * pow( x_CE_I2, kone) +k2 * kone * pow( x_CE_Breac, kone) * pow( x_CE_Ireac2, kone);
1042 fx[n_CE_Breac] += +k1 * kone * pow( x_CE_B, kone) * pow( x_CE_I2, kone) -k2 * kone * pow( x_CE_Breac, kone) * pow( x_CE_Ireac2, kone);
1043 fx[n_CE_Ireac2] += +k1 * kone * pow( x_CE_B, kone) * pow( x_CE_I2, kone) -k2 * kone * pow( x_CE_Breac, kone) * pow( x_CE_Ireac2, kone);
1046 f_f_rate_coeff_b2(x, p,k1, k2, results);
1049 fx[n_CE_B] += -k1 * kone * pow( x_CE_B, kone) * pow( x_CE_I1, kone) +k2 * kone * pow( x_CE_Breac, kone) * pow( x_CE_Ireac1, kone);
1050 fx[n_CE_I1] += -k1 * kone * pow( x_CE_B, kone) * pow( x_CE_I1, kone) +k2 * kone * pow( x_CE_Breac, kone) * pow( x_CE_Ireac1, kone);
1051 fx[n_CE_Breac] += +k1 * kone * pow( x_CE_B, kone) * pow( x_CE_I1, kone) -k2 * kone * pow( x_CE_Breac, kone) * pow( x_CE_Ireac1, kone);
1052 fx[n_CE_Ireac1] += +k1 * kone * pow( x_CE_B, kone) * pow( x_CE_I1, kone) -k2 * kone * pow( x_CE_Breac, kone) * pow( x_CE_Ireac1, kone);
1055 f_f_rate_coeff_b1(x, p,k1, k2, results);
1059 fx[n_CE_B2] += -k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I0, kone) +k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Ireac0, kone) * pow( x_CE_Breac, kone);
1060 fx[n_CE_I0] += -k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I0, kone) +k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Ireac0, kone) * pow( x_CE_Breac, kone);
1061 fx[n_CE_B] += +k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I0, kone) -k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Ireac0, kone) * pow( x_CE_Breac, kone);
1062 fx[n_CE_Ireac0] += +k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I0, kone) -k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Ireac0, kone) * pow( x_CE_Breac, kone);
1063 fx[n_CE_Breac] += +k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I0, kone) -k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Ireac0, kone) * pow( x_CE_Breac, kone);
1066 f_f_rate_coeff_b1(x, p,k1, k2, results);
1069 fx[n_CE_B2] += -k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I1, kone) +k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Breac, kone) * pow( x_CE_Ireac1, kone);
1070 fx[n_CE_I1] += -k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I1, kone) +k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Breac, kone) * pow( x_CE_Ireac1, kone);
1071 fx[n_CE_B] += +k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I1, kone) -k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Breac, kone) * pow( x_CE_Ireac1, kone);
1072 fx[n_CE_Breac] += +k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I1, kone) -k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Breac, kone) * pow( x_CE_Ireac1, kone);
1073 fx[n_CE_Ireac1] += +k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I1, kone) -k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Breac, kone) * pow( x_CE_Ireac1, kone);
1076 f_f_rate_coeff_b1(x, p,k1, k2, results);
1079 fx[n_CE_B2] += -k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I2, kone) +k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Breac, kone) * pow( x_CE_Ireac2, kone);
1080 fx[n_CE_I2] += -k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I2, kone) +k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Breac, kone) * pow( x_CE_Ireac2, kone);
1081 fx[n_CE_B] += +k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I2, kone) -k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Breac, kone) * pow( x_CE_Ireac2, kone);
1082 fx[n_CE_Breac] += +k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I2, kone) -k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Breac, kone) * pow( x_CE_Ireac2, kone);
1083 fx[n_CE_Ireac2] += +k1 * kone * pow( x_CE_B2, kone) * pow( x_CE_I2, kone) -k2 * kone * pow( x_CE_B, kone) * pow( x_CE_Breac, kone) * pow( x_CE_Ireac2, kone);
real(dp) k1
imaginary part of refractive indice of gas
real(dp) k2
imaginary part of refractive indice of polymer