CAMP 1.0.0
Chemistry Across Multiple Phases
rxns.h
Go to the documentation of this file.
1/* Copyright (C) 2021 Barcelona Supercomputing Center and University of
2 * Illinois at Urbana-Champaign
3 * SPDX-License-Identifier: MIT
4 *
5 * Header file for reaction functions
6 *
7 * TODO Automatically generate rxn_solver.c and rxn_solver.h code
8 * maybe using cmake?
9 *
10 */
11/** \file
12 * \brief Header file for reaction solver functions
13 */
14#ifndef RXNS_H_
15#define RXNS_H_
16#include "Jacobian.h"
17#include "camp_common.h"
18
19// aqueous_equilibrium
21 double *rxn_float_data,
22 Jacobian *jac);
23void rxn_aqueous_equilibrium_update_ids(ModelData *model_data, int *deriv_ids,
24 Jacobian jac, int *rxn_int_data,
25 double *rxn_float_data);
27 int *rxn_int_data,
28 double *rxn_float_data,
29 double *rxn_env_data);
30void rxn_aqueous_equilibrium_print(int *rxn_int_data, double *rxn_float_data);
31#ifdef CAMP_USE_SUNDIALS
33 ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data,
34 double *rxn_float_data, double *rxn_env_data, realtype time_step);
36 Jacobian jac, int *rxn_int_data,
37 double *rxn_float_data,
38 double *rxn_env_data,
39 realtype time_step);
40#endif
41
42// arrhenius
43void rxn_arrhenius_get_used_jac_elem(int *rxn_int_data, double *rxn_float_data,
44 Jacobian *jac);
45void rxn_arrhenius_update_ids(ModelData *model_data, int *deriv_ids,
46 Jacobian jac, int *rxn_int_data,
47 double *rxn_float_data);
48void rxn_arrhenius_update_env_state(ModelData *model_data, int *rxn_int_data,
49 double *rxn_float_data,
50 double *rxn_env_data);
51void rxn_arrhenius_print(int *rxn_int_data, double *rxn_float_data);
52#ifdef CAMP_USE_SUNDIALS
54 TimeDerivative time_deriv,
55 int *rxn_int_data, double *rxn_float_data,
56 double *rxn_env_data, realtype time_step);
58 int *rxn_int_data, double *rxn_float_data,
59 double *rxn_env_data, realtype time_step);
60#endif
61
62// CMAQ_H2O2
63void rxn_CMAQ_H2O2_get_used_jac_elem(int *rxn_int_data, double *rxn_float_data,
64 Jacobian *jac);
65void rxn_CMAQ_H2O2_update_ids(ModelData *model_data, int *deriv_ids,
66 Jacobian jac, int *rxn_int_data,
67 double *rxn_float_data);
68void rxn_CMAQ_H2O2_update_env_state(ModelData *model_data, int *rxn_int_data,
69 double *rxn_float_data,
70 double *rxn_env_data);
71void rxn_CMAQ_H2O2_print(int *rxn_int_data, double *rxn_float_data);
72#ifdef CAMP_USE_SUNDIALS
74 TimeDerivative time_deriv,
75 int *rxn_int_data, double *rxn_float_data,
76 double *rxn_env_data, realtype time_step);
78 int *rxn_int_data, double *rxn_float_data,
79 double *rxn_env_data, realtype time_step);
80#endif
81
82// CMAQ_OH_HNO3
83void rxn_CMAQ_OH_HNO3_get_used_jac_elem(int *rxn_int_data,
84 double *rxn_float_data, Jacobian *jac);
85void rxn_CMAQ_OH_HNO3_update_ids(ModelData *model_data, int *deriv_ids,
86 Jacobian jac, int *rxn_int_data,
87 double *rxn_float_data);
88void rxn_CMAQ_OH_HNO3_update_env_state(ModelData *model_data, int *rxn_int_data,
89 double *rxn_float_data,
90 double *rxn_env_data);
91void rxn_CMAQ_OH_HNO3_print(int *rxn_int_data, double *rxn_float_data);
92#ifdef CAMP_USE_SUNDIALS
94 ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data,
95 double *rxn_float_data, double *rxn_env_data, realtype time_step);
97 int *rxn_int_data,
98 double *rxn_float_data,
99 double *rxn_env_data,
100 realtype time_step);
101#endif
102
103// condensed_phase_arrhenius
105 double *rxn_float_data,
106 Jacobian *jac);
108 int *deriv_ids, Jacobian jac,
109 int *rxn_int_data,
110 double *rxn_float_data);
112 int *rxn_int_data,
113 double *rxn_float_data,
114 double *rxn_env_data);
115void rxn_condensed_phase_arrhenius_print(int *rxn_int_data,
116 double *rxn_float_data);
117#ifdef CAMP_USE_SUNDIALS
119 ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data,
120 double *rxn_float_data, double *rxn_env_data, realtype time_step);
122 ModelData *model_data, Jacobian jac, int *rxn_int_data,
123 double *rxn_float_data, double *rxn_env_data, realtype time_step);
124#endif
125
126// condensed_phase_photolysis
128 double *rxn_float_data,
129 Jacobian *jac);
131 int *deriv_ids, Jacobian jac,
132 int *rxn_int_data,
133 double *rxn_float_data);
135 int *rxn_int_data,
136 double *rxn_float_data,
137 double *rxn_env_data);
138void rxn_condensed_phase_photolysis_print(int *rxn_int_data,
139 double *rxn_float_data);
140bool rxn_condensed_phase_photolysis_update_data(void *update_data, int *rxn_int_data,
141 double *rxn_float_data, double *rxn_env_data);
142#ifdef CAMP_USE_SUNDIALS
144 ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data,
145 double *rxn_float_data, double *rxn_env_data, realtype time_step);
147 ModelData *model_data, Jacobian jac, int *rxn_int_data,
148 double *rxn_float_data, double *rxn_env_data, realtype time_step);
149#endif
151void rxn_condensed_phase_photolysis_set_rate_update_data(void *update_data, int photo_id,
152 double base_rate);
153
154// emission
155void rxn_emission_get_used_jac_elem(int *rxn_int_data, double *rxn_float_data,
156 Jacobian *jac);
157void rxn_emission_update_ids(ModelData *model_data, int *deriv_ids,
158 Jacobian jac, int *rxn_int_data,
159 double *rxn_float_data);
160void rxn_emission_update_env_state(ModelData *model_data, int *rxn_int_data,
161 double *rxn_float_data,
162 double *rxn_env_data);
163bool rxn_emission_update_data(void *update_data, int *rxn_int_data,
164 double *rxn_float_data, double *rxn_env_data);
165void rxn_emission_print(int *rxn_int_data, double *rxn_float_data);
166#ifdef CAMP_USE_SUNDIALS
168 TimeDerivative time_deriv,
169 int *rxn_int_data, double *rxn_float_data,
170 double *rxn_env_data, realtype time_step);
172 int *rxn_int_data, double *rxn_float_data,
173 double *rxn_env_data, realtype time_step);
174#endif
176void rxn_emission_set_rate_update_data(void *update_data, int rxn_id,
177 double base_rate);
178
179// first_order_loss
180void rxn_first_order_loss_get_used_jac_elem(int *rxn_int_data,
181 double *rxn_float_data,
182 Jacobian *jac);
183void rxn_first_order_loss_update_ids(ModelData *model_data, int *deriv_ids,
184 Jacobian jac, int *rxn_int_data,
185 double *rxn_float_data);
187 int *rxn_int_data,
188 double *rxn_float_data,
189 double *rxn_env_data);
190bool rxn_first_order_loss_update_data(void *update_data, int *rxn_int_data,
191 double *rxn_float_data,
192 double *rxn_env_data);
193void rxn_first_order_loss_print(int *rxn_int_data, double *rxn_float_data);
194#ifdef CAMP_USE_SUNDIALS
196 ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data,
197 double *rxn_float_data, double *rxn_env_data, realtype time_step);
199 int *rxn_int_data,
200 double *rxn_float_data,
201 double *rxn_env_data,
202 realtype time_step);
203#endif
205void rxn_first_order_loss_set_rate_update_data(void *update_data, int rxn_id,
206 double base_rate);
207
208// HL_phase_transfer
210 int *rxn_int_data,
211 double *rxn_float_data,
212 Jacobian *jac);
213void rxn_HL_phase_transfer_update_ids(ModelData *model_data, int *deriv_ids,
214 Jacobian jac, int *rxn_int_data,
215 double *rxn_float_data);
217 int *rxn_int_data,
218 double *rxn_float_data,
219 double *rxn_env_data);
220void rxn_HL_phase_transfer_print(int *rxn_int_data, double *rxn_float_data);
221#ifdef CAMP_USE_SUNDIALS
223 ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data,
224 double *rxn_float_data, double *rxn_env_data, realtype time_step);
226 int *rxn_int_data,
227 double *rxn_float_data,
228 double *rxn_env_data,
229 realtype time_step);
230#endif
231
232// photolysis
233void rxn_photolysis_get_used_jac_elem(int *rxn_int_data, double *rxn_float_data,
234 Jacobian *jac);
235void rxn_photolysis_update_ids(ModelData *model_data, int *deriv_ids,
236 Jacobian jac, int *rxn_int_data,
237 double *rxn_float_data);
238void rxn_photolysis_update_env_state(ModelData *model_data, int *rxn_int_data,
239 double *rxn_float_data,
240 double *rxn_env_data);
241bool rxn_photolysis_update_data(void *update_data, int *rxn_int_data,
242 double *rxn_float_data, double *rxn_env_data);
243void rxn_photolysis_print(int *rxn_int_data, double *rxn_float_data);
244#ifdef CAMP_USE_SUNDIALS
246 ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data,
247 double *rxn_float_data, double *rxn_env_data, realtype time_step);
249 int *rxn_int_data, double *rxn_float_data,
250 double *rxn_env_data, realtype time_step);
251#endif
253void rxn_photolysis_set_rate_update_data(void *update_data, int photo_id,
254 double base_rate);
255
256// SIMPOL_phase_transfer
258 int *rxn_int_data,
259 double *rxn_float_data,
260 Jacobian *jac);
261void rxn_SIMPOL_phase_transfer_update_ids(ModelData *model_data, int *deriv_ids,
262 Jacobian jac, int *rxn_int_data,
263 double *rxn_float_data);
265 int *rxn_int_data,
266 double *rxn_float_data,
267 double *rxn_env_data);
268void rxn_SIMPOL_phase_transfer_print(int *rxn_int_data, double *rxn_float_data);
269#ifdef CAMP_USE_SUNDIALS
271 ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data,
272 double *rxn_float_data, double *rxn_env_data, realtype time_step);
274 Jacobian jac, int *rxn_int_data,
275 double *rxn_float_data,
276 double *rxn_env_data,
277 realtype time_step);
278#endif
279
280// surface
282 int *rxn_int_data,
283 double *rxn_float_data,
284 Jacobian *jac);
285void rxn_surface_update_ids(ModelData *model_data, int *deriv_ids,
286 Jacobian jac, int *rxn_int_data,
287 double *rxn_float_data);
289 int *rxn_int_data,
290 double *rxn_float_data,
291 double *rxn_env_data);
292void rxn_surface_print(int *rxn_int_data, double *rxn_float_data);
293#ifdef CAMP_USE_SUNDIALS
295 ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data,
296 double *rxn_float_data, double *rxn_env_data, realtype time_step);
298 Jacobian jac, int *rxn_int_data,
299 double *rxn_float_data,
300 double *rxn_env_data,
301 realtype time_step);
302#endif
303
304// ternary_chemical_activation
306 double *rxn_float_data,
307 Jacobian *jac);
309 int *deriv_ids, Jacobian jac,
310 int *rxn_int_data,
311 double *rxn_float_data);
313 int *rxn_int_data,
314 double *rxn_float_data,
315 double *rxn_env_data);
316void rxn_ternary_chemical_activation_print(int *rxn_int_data,
317 double *rxn_float_data);
318#ifdef CAMP_USE_SUNDIALS
320 ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data,
321 double *rxn_float_data, double *rxn_env_data, realtype time_step);
323 ModelData *model_data, Jacobian jac, int *rxn_int_data,
324 double *rxn_float_data, double *rxn_env_data, realtype time_step);
325#endif
326
327// troe
328void rxn_troe_get_used_jac_elem(int *rxn_int_data, double *rxn_float_data,
329 Jacobian *jac);
330void rxn_troe_update_ids(ModelData *model_data, int *deriv_ids, Jacobian jac,
331 int *rxn_int_data, double *rxn_float_data);
332void rxn_troe_update_env_state(ModelData *model_data, int *rxn_int_data,
333 double *rxn_float_data, double *rxn_env_data);
334void rxn_troe_print(int *rxn_int_data, double *rxn_float_data);
335#ifdef CAMP_USE_SUNDIALS
337 TimeDerivative time_deriv, int *rxn_int_data,
338 double *rxn_float_data, double *rxn_env_data,
339 realtype time_step);
340void rxn_troe_calc_jac_contrib(ModelData *model_data, Jacobian jac,
341 int *rxn_int_data, double *rxn_float_data,
342 double *rxn_env_data, realtype time_step);
343#endif
344
345// wennberg_no_ro2
346void rxn_wennberg_no_ro2_get_used_jac_elem(int *rxn_int_data,
347 double *rxn_float_data,
348 Jacobian *jac);
349void rxn_wennberg_no_ro2_update_ids(ModelData *model_data, int *deriv_ids,
350 Jacobian jac, int *rxn_int_data,
351 double *rxn_float_data);
353 int *rxn_int_data,
354 double *rxn_float_data,
355 double *rxn_env_data);
356bool rxn_wennberg_no_ro2_update_data(void *update_data, int *rxn_int_data,
357 double *rxn_float_data,
358 double *rxn_env_data);
359void rxn_wennberg_no_ro2_print(int *rxn_int_data, double *rxn_float_data);
360#ifdef CAMP_USE_SUNDIALS
362 ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data,
363 double *rxn_float_data, double *rxn_env_data, realtype time_step);
365 int *rxn_int_data,
366 double *rxn_float_data,
367 double *rxn_env_data,
368 realtype time_step);
369#endif
371void rxn_wennberg_no_ro2_set_rate_update_data(void *update_data, int rxn_id,
372 double base_rate);
373
374// wennberg_tunneling
375void rxn_wennberg_tunneling_get_used_jac_elem(int *rxn_int_data,
376 double *rxn_float_data,
377 Jacobian *jac);
378void rxn_wennberg_tunneling_update_ids(ModelData *model_data, int *deriv_ids,
379 Jacobian jac, int *rxn_int_data,
380 double *rxn_float_data);
382 int *rxn_int_data,
383 double *rxn_float_data,
384 double *rxn_env_data);
385bool rxn_wennberg_tunneling_update_data(void *update_data, int *rxn_int_data,
386 double *rxn_float_data,
387 double *rxn_env_data);
388void rxn_wennberg_tunneling_print(int *rxn_int_data, double *rxn_float_data);
389#ifdef CAMP_USE_SUNDIALS
391 ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data,
392 double *rxn_float_data, double *rxn_env_data, realtype time_step);
394 Jacobian jac, int *rxn_int_data,
395 double *rxn_float_data,
396 double *rxn_env_data,
397 realtype time_step);
398#endif
400void rxn_wennberg_tunneling_set_rate_update_data(void *update_data, int rxn_id,
401 double base_rate);
402
403// wet_deposition
404void rxn_wet_deposition_get_used_jac_elem(int *rxn_int_data,
405 double *rxn_float_data,
406 Jacobian *jac);
407void rxn_wet_deposition_update_ids(ModelData *model_data, int *deriv_ids,
408 Jacobian jac, int *rxn_int_data,
409 double *rxn_float_data);
411 int *rxn_int_data,
412 double *rxn_float_data,
413 double *rxn_env_data);
414bool rxn_wet_deposition_update_data(void *update_data, int *rxn_int_data,
415 double *rxn_float_data,
416 double *rxn_env_data);
417void rxn_wet_deposition_print(int *rxn_int_data, double *rxn_float_data);
418#ifdef CAMP_USE_SUNDIALS
420 ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data,
421 double *rxn_float_data, double *rxn_env_data, realtype time_step);
423 int *rxn_int_data,
424 double *rxn_float_data,
425 double *rxn_env_data,
426 realtype time_step);
427#endif
429void rxn_wet_deposition_set_rate_update_data(void *update_data, int rxn_id,
430 double base_rate);
431
432#endif
Header for the Jacobian structure and related functions.
Header file for common constants and structures.
void rxn_CMAQ_H2O2_update_ids(ModelData *model_data, int *deriv_ids, Jacobian jac, int *rxn_int_data, double *rxn_float_data)
Update the time derivative and Jacbobian array indices.
void * rxn_condensed_phase_photolysis_create_rate_update_data()
Create update data for new photolysis rates.
void rxn_aqueous_equilibrium_update_env_state(ModelData *model_data, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data)
Update reaction data for new environmental conditions.
void rxn_first_order_loss_calc_jac_contrib(ModelData *model_data, Jacobian jac, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
Calculate contributions to the Jacobian from this reaction.
void rxn_wet_deposition_get_used_jac_elem(int *rxn_int_data, double *rxn_float_data, Jacobian *jac)
Flag Jacobian elements used by this reaction.
void rxn_ternary_chemical_activation_calc_jac_contrib(ModelData *model_data, Jacobian jac, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
Calculate contributions to the Jacobian from this reaction.
void rxn_emission_get_used_jac_elem(int *rxn_int_data, double *rxn_float_data, Jacobian *jac)
Flag Jacobian elements used by this reaction.
void rxn_ternary_chemical_activation_print(int *rxn_int_data, double *rxn_float_data)
Print the Ternary Chemical Activation reaction parameters.
void rxn_emission_calc_deriv_contrib(ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
Calculate contributions to the time derivative from this reaction.
void rxn_photolysis_calc_jac_contrib(ModelData *model_data, Jacobian jac, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
Calculate contributions to the Jacobian from this reaction.
void rxn_emission_update_ids(ModelData *model_data, int *deriv_ids, Jacobian jac, int *rxn_int_data, double *rxn_float_data)
Update the time derivative and Jacbobian array indices.
void rxn_SIMPOL_phase_transfer_get_used_jac_elem(ModelData *model_data, int *rxn_int_data, double *rxn_float_data, Jacobian *jac)
Flag Jacobian elements used by this reaction.
void rxn_SIMPOL_phase_transfer_update_env_state(ModelData *model_data, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data)
Update reaction data for new environmental conditions.
void rxn_surface_get_used_jac_elem(ModelData *model_data, int *rxn_int_data, double *rxn_float_data, Jacobian *jac)
Flag Jacobian elements used by this reaction.
Definition rxn_surface.c:56
void rxn_emission_set_rate_update_data(void *update_data, int rxn_id, double base_rate)
Set rate update data.
void rxn_ternary_chemical_activation_update_env_state(ModelData *model_data, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data)
Update reaction data for new environmental conditions.
void rxn_emission_print(int *rxn_int_data, double *rxn_float_data)
Print the reaction parameters.
void rxn_surface_update_env_state(ModelData *model_data, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data)
Update reaction data for new environmental conditions.
void rxn_condensed_phase_arrhenius_calc_jac_contrib(ModelData *model_data, Jacobian jac, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
void rxn_CMAQ_H2O2_update_env_state(ModelData *model_data, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data)
Update reaction data for new environmental conditions.
void rxn_HL_phase_transfer_print(int *rxn_int_data, double *rxn_float_data)
Print the Phase Transfer reaction parameters.
bool rxn_emission_update_data(void *update_data, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data)
Update reaction data.
void rxn_CMAQ_OH_HNO3_calc_deriv_contrib(ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
void rxn_SIMPOL_phase_transfer_calc_jac_contrib(ModelData *model_data, Jacobian jac, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
Calculate contributions to the Jacobian from this reaction.
void rxn_CMAQ_OH_HNO3_update_env_state(ModelData *model_data, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data)
Update reaction data for new environmental conditions.
void rxn_wennberg_no_ro2_set_rate_update_data(void *update_data, int rxn_id, double base_rate)
void rxn_aqueous_equilibrium_calc_jac_contrib(ModelData *model_data, Jacobian jac, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
void * rxn_wet_deposition_create_rate_update_data()
Create update data for new wet deposition rates.
bool rxn_wennberg_tunneling_update_data(void *update_data, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data)
void rxn_CMAQ_H2O2_calc_jac_contrib(ModelData *model_data, Jacobian jac, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
void rxn_wennberg_tunneling_set_rate_update_data(void *update_data, int rxn_id, double base_rate)
void rxn_CMAQ_H2O2_calc_deriv_contrib(ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
void rxn_condensed_phase_photolysis_print(int *rxn_int_data, double *rxn_float_data)
Print the Condensed Phase photolysis reaction parameters.
void rxn_CMAQ_OH_HNO3_print(int *rxn_int_data, double *rxn_float_data)
Print the CMAQ_OH_HNO3 reaction parameters.
void rxn_HL_phase_transfer_calc_jac_contrib(ModelData *model_data, Jacobian jac, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
Calculate contributions to the Jacobian from this reaction.
void rxn_troe_calc_jac_contrib(ModelData *model_data, Jacobian jac, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
Calculate contributions to the Jacobian from this reaction.
Definition rxn_troe.c:189
void rxn_condensed_phase_arrhenius_get_used_jac_elem(int *rxn_int_data, double *rxn_float_data, Jacobian *jac)
Flag Jacobian elements used by this reaction.
void rxn_HL_phase_transfer_update_env_state(ModelData *model_data, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data)
Update reaction data for new environmental conditions.
void rxn_wet_deposition_update_ids(ModelData *model_data, int *deriv_ids, Jacobian jac, int *rxn_int_data, double *rxn_float_data)
Update the time derivative and Jacbobian array indices.
void rxn_wennberg_tunneling_update_ids(ModelData *model_data, int *deriv_ids, Jacobian jac, int *rxn_int_data, double *rxn_float_data)
Update the time derivative and Jacbobian array indices.
void rxn_surface_calc_deriv_contrib(ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
Calculate contributions to the time derivative from this reaction.
void rxn_wennberg_tunneling_print(int *rxn_int_data, double *rxn_float_data)
Print the Wennberg tunneling reaction parameters.
void rxn_first_order_loss_print(int *rxn_int_data, double *rxn_float_data)
Print the reaction parameters.
void * rxn_wennberg_tunneling_create_rate_update_data()
void rxn_surface_update_ids(ModelData *model_data, int *deriv_ids, Jacobian jac, int *rxn_int_data, double *rxn_float_data)
Update the time derivative and Jacbobian array indices.
void rxn_SIMPOL_phase_transfer_print(int *rxn_int_data, double *rxn_float_data)
Print the Phase Transfer reaction parameters.
void rxn_HL_phase_transfer_get_used_jac_elem(ModelData *model_data, int *rxn_int_data, double *rxn_float_data, Jacobian *jac)
Flag Jacobian elements used by this reaction.
void rxn_wet_deposition_update_env_state(ModelData *model_data, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data)
Update reaction data for new environmental conditions.
void rxn_arrhenius_calc_jac_contrib(ModelData *model_data, Jacobian jac, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
bool rxn_photolysis_update_data(void *update_data, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data)
Update reaction data.
void rxn_wet_deposition_calc_deriv_contrib(ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
Calculate contributions to the time derivative from this reaction.
void rxn_photolysis_update_env_state(ModelData *model_data, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data)
Update reaction data for new environmental conditions.
void rxn_first_order_loss_get_used_jac_elem(int *rxn_int_data, double *rxn_float_data, Jacobian *jac)
Flag Jacobian elements used by this reaction.
void rxn_ternary_chemical_activation_get_used_jac_elem(int *rxn_int_data, double *rxn_float_data, Jacobian *jac)
Flag Jacobian elements used by this reaction.
void rxn_arrhenius_calc_deriv_contrib(ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
void rxn_wet_deposition_print(int *rxn_int_data, double *rxn_float_data)
Print the reaction parameters.
void rxn_condensed_phase_photolysis_update_env_state(ModelData *model_data, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data)
Update reaction data for new environmental conditions.
void rxn_condensed_phase_photolysis_set_rate_update_data(void *update_data, int photo_id, double base_rate)
Set rate update data.
void rxn_aqueous_equilibrium_print(int *rxn_int_data, double *rxn_float_data)
Print the Aqueous Equilibrium reaction parameters.
void rxn_first_order_loss_set_rate_update_data(void *update_data, int rxn_id, double base_rate)
Set rate update data.
bool rxn_wennberg_no_ro2_update_data(void *update_data, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data)
void rxn_condensed_phase_arrhenius_update_env_state(ModelData *model_data, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data)
Update reaction data for new environmental conditions.
void rxn_troe_print(int *rxn_int_data, double *rxn_float_data)
Print the Troe reaction parameters.
Definition rxn_troe.c:231
void * rxn_photolysis_create_rate_update_data()
Create update data for new photolysis rates.
void rxn_arrhenius_get_used_jac_elem(int *rxn_int_data, double *rxn_float_data, Jacobian *jac)
Flag Jacobian elements used by this reaction.
void rxn_arrhenius_update_ids(ModelData *model_data, int *deriv_ids, Jacobian jac, int *rxn_int_data, double *rxn_float_data)
Update the time derivative and Jacbobian array indices.
void rxn_photolysis_calc_deriv_contrib(ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
Calculate contributions to the time derivative from this reaction.
void rxn_SIMPOL_phase_transfer_calc_deriv_contrib(ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
Calculate contributions to the time derivative from this reaction.
void rxn_condensed_phase_arrhenius_calc_deriv_contrib(ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
void rxn_condensed_phase_photolysis_get_used_jac_elem(int *rxn_int_data, double *rxn_float_data, Jacobian *jac)
Flag Jacobian elements used by this reaction.
bool rxn_wet_deposition_update_data(void *update_data, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data)
Update reaction data.
void rxn_HL_phase_transfer_update_ids(ModelData *model_data, int *deriv_ids, Jacobian jac, int *rxn_int_data, double *rxn_float_data)
Update the time derivative and Jacbobian array indices.
void rxn_wennberg_no_ro2_update_env_state(ModelData *model_data, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data)
Update reaction data for new environmental conditions.
void rxn_troe_get_used_jac_elem(int *rxn_int_data, double *rxn_float_data, Jacobian *jac)
Flag Jacobian elements used by this reaction.
Definition rxn_troe.c:47
void rxn_surface_calc_jac_contrib(ModelData *model_data, Jacobian jac, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
Calculate contributions to the Jacobian from this reaction.
void rxn_aqueous_equilibrium_calc_deriv_contrib(ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
void rxn_ternary_chemical_activation_update_ids(ModelData *model_data, int *deriv_ids, Jacobian jac, int *rxn_int_data, double *rxn_float_data)
Update the time derivative and Jacbobian array indices.
void rxn_wennberg_no_ro2_get_used_jac_elem(int *rxn_int_data, double *rxn_float_data, Jacobian *jac)
Flag Jacobian elements used by this reaction.
void rxn_condensed_phase_photolysis_update_ids(ModelData *model_data, int *deriv_ids, Jacobian jac, int *rxn_int_data, double *rxn_float_data)
Update the time derivative and Jacbobian array indices.
void rxn_condensed_phase_photolysis_calc_deriv_contrib(ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
void rxn_arrhenius_update_env_state(ModelData *model_data, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data)
Update reaction data for new environmental conditions.
void rxn_HL_phase_transfer_calc_deriv_contrib(ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
Calculate contributions to the time derivative from this reaction.
void rxn_ternary_chemical_activation_calc_deriv_contrib(ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
Calculate contributions to the time derivative from this reaction.
void rxn_condensed_phase_photolysis_calc_jac_contrib(ModelData *model_data, Jacobian jac, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
void rxn_condensed_phase_arrhenius_print(int *rxn_int_data, double *rxn_float_data)
Print the Condensed Phase Arrhenius reaction parameters.
void * rxn_first_order_loss_create_rate_update_data()
Create update data for new first-order loss rates.
void rxn_CMAQ_H2O2_get_used_jac_elem(int *rxn_int_data, double *rxn_float_data, Jacobian *jac)
Flag Jacobian elements used by this reaction.
void rxn_wennberg_tunneling_calc_deriv_contrib(ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
void rxn_troe_update_ids(ModelData *model_data, int *deriv_ids, Jacobian jac, int *rxn_int_data, double *rxn_float_data)
Update the time derivative and Jacbobian array indices.
Definition rxn_troe.c:72
void rxn_CMAQ_OH_HNO3_get_used_jac_elem(int *rxn_int_data, double *rxn_float_data, Jacobian *jac)
Flag Jacobian elements used by this reaction.
void rxn_photolysis_get_used_jac_elem(int *rxn_int_data, double *rxn_float_data, Jacobian *jac)
Flag Jacobian elements used by this reaction.
void rxn_emission_calc_jac_contrib(ModelData *model_data, Jacobian jac, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
Calculate contributions to the Jacobian from this reaction.
void rxn_condensed_phase_arrhenius_update_ids(ModelData *model_data, int *deriv_ids, Jacobian jac, int *rxn_int_data, double *rxn_float_data)
Update the time derivative and Jacbobian array indices.
void rxn_CMAQ_H2O2_print(int *rxn_int_data, double *rxn_float_data)
Print the CMAQ_H2O2 reaction parameters.
void rxn_aqueous_equilibrium_get_used_jac_elem(int *rxn_int_data, double *rxn_float_data, Jacobian *jac)
Flag Jacobian elements used by this reaction.
void * rxn_wennberg_no_ro2_create_rate_update_data()
void rxn_SIMPOL_phase_transfer_update_ids(ModelData *model_data, int *deriv_ids, Jacobian jac, int *rxn_int_data, double *rxn_float_data)
Update the time derivative and Jacbobian array indices.
void rxn_wennberg_no_ro2_update_ids(ModelData *model_data, int *deriv_ids, Jacobian jac, int *rxn_int_data, double *rxn_float_data)
Update the time derivative and Jacbobian array indices.
void rxn_first_order_loss_calc_deriv_contrib(ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
Calculate contributions to the time derivative from this reaction.
void rxn_wennberg_tunneling_calc_jac_contrib(ModelData *model_data, Jacobian jac, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
void rxn_first_order_loss_update_env_state(ModelData *model_data, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data)
Update reaction data for new environmental conditions.
void rxn_CMAQ_OH_HNO3_calc_jac_contrib(ModelData *model_data, Jacobian jac, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
void rxn_troe_update_env_state(ModelData *model_data, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data)
Update reaction data for new environmental conditions.
Definition rxn_troe.c:107
void rxn_wet_deposition_calc_jac_contrib(ModelData *model_data, Jacobian jac, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
Calculate contributions to the Jacobian from this reaction.
void rxn_wennberg_tunneling_update_env_state(ModelData *model_data, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data)
Update reaction data for new environmental conditions.
void * rxn_emission_create_rate_update_data()
Create update data for new emission rates.
void rxn_emission_update_env_state(ModelData *model_data, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data)
Update reaction data for new environmental conditions.
void rxn_wennberg_no_ro2_calc_jac_contrib(ModelData *model_data, Jacobian jac, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
bool rxn_condensed_phase_photolysis_update_data(void *update_data, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data)
Update reaction data.
void rxn_troe_calc_deriv_contrib(ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)
Calculate contributions to the time derivative from this reaction.
Definition rxn_troe.c:143
void rxn_first_order_loss_update_ids(ModelData *model_data, int *deriv_ids, Jacobian jac, int *rxn_int_data, double *rxn_float_data)
Update the time derivative and Jacbobian array indices.
void rxn_CMAQ_OH_HNO3_update_ids(ModelData *model_data, int *deriv_ids, Jacobian jac, int *rxn_int_data, double *rxn_float_data)
Update the time derivative and Jacbobian array indices.
void rxn_wet_deposition_set_rate_update_data(void *update_data, int rxn_id, double base_rate)
Set rate update data.
bool rxn_first_order_loss_update_data(void *update_data, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data)
Update reaction data.
void rxn_photolysis_print(int *rxn_int_data, double *rxn_float_data)
Print the Photolysis reaction parameters.
void rxn_wennberg_tunneling_get_used_jac_elem(int *rxn_int_data, double *rxn_float_data, Jacobian *jac)
Flag Jacobian elements used by this reaction.
void rxn_wennberg_no_ro2_print(int *rxn_int_data, double *rxn_float_data)
Print the Wennberg NO + RO2 reaction parameters.
void rxn_surface_print(int *rxn_int_data, double *rxn_float_data)
Print the surface reaction parameters.
void rxn_aqueous_equilibrium_update_ids(ModelData *model_data, int *deriv_ids, Jacobian jac, int *rxn_int_data, double *rxn_float_data)
Update the time derivative and Jacbobian array indices.
void rxn_photolysis_update_ids(ModelData *model_data, int *deriv_ids, Jacobian jac, int *rxn_int_data, double *rxn_float_data)
Update the time derivative and Jacbobian array indices.
void rxn_arrhenius_print(int *rxn_int_data, double *rxn_float_data)
Print the Arrhenius reaction parameters.
void rxn_photolysis_set_rate_update_data(void *update_data, int photo_id, double base_rate)
Set rate update data.
void rxn_wennberg_no_ro2_calc_deriv_contrib(ModelData *model_data, TimeDerivative time_deriv, int *rxn_int_data, double *rxn_float_data, double *rxn_env_data, realtype time_step)