11#define CAMP_DEBUG_SPEC_ 118
19#define RXN_ARRHENIUS 1
21#define RXN_CMAQ_H2O2 3
22#define RXN_CMAQ_OH_HNO3 4
23#define RXN_PHOTOLYSIS 5
24#define RXN_HL_PHASE_TRANSFER 6
25#define RXN_AQUEOUS_EQUILIBRIUM 7
26#define RXN_SIMPOL_PHASE_TRANSFER 10
27#define RXN_CONDENSED_PHASE_ARRHENIUS 11
28#define RXN_FIRST_ORDER_LOSS 12
29#define RXN_EMISSION 13
30#define RXN_WET_DEPOSITION 14
31#define RXN_TERNARY_CHEMICAL_ACTIVATION 15
32#define RXN_WENNBERG_TUNNELING 16
33#define RXN_WENNBERG_NO_RO2 17
34#define RXN_CONDENSED_PHASE_PHOTOLYSIS 18
44 int n_rxn = model_data->
n_rxn;
48 for (
int i_rxn = 0; i_rxn < n_rxn; i_rxn++) {
52 double *rxn_float_data =
56 int rxn_type = *(rxn_int_data++);
101 rxn_float_data, jac);
105 rxn_float_data, jac);
133 int n_rxn = model_data->
n_rxn;
136 for (
int i_rxn = 0; i_rxn < n_rxn; i_rxn++) {
140 double *rxn_float_data =
144 int rxn_type = *(rxn_int_data++);
150 rxn_int_data, rxn_float_data);
166 rxn_int_data, rxn_float_data);
170 rxn_int_data, rxn_float_data);
178 rxn_int_data, rxn_float_data);
182 rxn_int_data, rxn_float_data);
190 rxn_int_data, rxn_float_data);
194 rxn_int_data, rxn_float_data);
198 model_data, deriv_ids, jac, rxn_int_data, rxn_float_data);
210 rxn_int_data, rxn_float_data);
226 int n_rxn = model_data->
n_rxn;
229 for (
int i_rxn = 0; i_rxn < n_rxn; i_rxn++) {
233 double *rxn_float_data =
235 double *rxn_env_data =
239 int rxn_type = *(rxn_int_data++);
245 rxn_float_data, rxn_env_data);
257 rxn_float_data, rxn_env_data);
261 model_data, rxn_int_data, rxn_float_data, rxn_env_data);
265 model_data, rxn_int_data, rxn_float_data, rxn_env_data);
273 rxn_float_data, rxn_env_data);
277 rxn_float_data, rxn_env_data);
281 rxn_float_data, rxn_env_data);
285 model_data, rxn_int_data, rxn_float_data, rxn_env_data);
289 model_data, rxn_int_data, rxn_float_data, rxn_env_data);
293 model_data, rxn_int_data, rxn_float_data, rxn_env_data);
301 rxn_float_data, rxn_env_data);
305 rxn_float_data, rxn_env_data);
309 rxn_float_data, rxn_env_data);
321#ifdef CAMP_USE_SUNDIALS
323 realtype time_step) {
325 int n_rxn = model_data->
n_rxn;
328 for (
int i_rxn = 0; i_rxn < n_rxn; i_rxn++) {
332 double *rxn_float_data =
334 double *rxn_env_data =
338 int rxn_type = *(rxn_int_data++);
344 rxn_int_data, rxn_float_data,
345 rxn_env_data, time_step);
349 rxn_float_data, rxn_env_data,
354 rxn_float_data, rxn_env_data,
359 rxn_int_data, rxn_float_data,
360 rxn_env_data, time_step);
364 model_data, time_deriv, rxn_int_data, rxn_float_data, rxn_env_data,
369 model_data, time_deriv, rxn_int_data, rxn_float_data, rxn_env_data,
374 rxn_float_data, rxn_env_data,
379 rxn_int_data, rxn_float_data,
380 rxn_env_data, time_step);
384 rxn_int_data, rxn_float_data,
385 rxn_env_data, time_step);
389 rxn_float_data, rxn_env_data,
394 model_data, time_deriv, rxn_int_data, rxn_float_data, rxn_env_data,
399 model_data, time_deriv, rxn_int_data, rxn_float_data, rxn_env_data,
404 model_data, time_deriv, rxn_int_data, rxn_float_data, rxn_env_data,
409 rxn_float_data, rxn_env_data, time_step);
413 rxn_int_data, rxn_float_data,
414 rxn_env_data, time_step);
418 rxn_int_data, rxn_float_data,
419 rxn_env_data, time_step);
423 rxn_int_data, rxn_float_data,
424 rxn_env_data, time_step);
438#ifdef CAMP_USE_SUNDIALS
441 realtype time_step) {
443 int n_rxn = model_data->
n_rxn;
446 for (
int i_rxn = 0; i_rxn < n_rxn; i_rxn++) {
450 double *rxn_float_data =
452 double *rxn_env_data =
456 int rxn_type = *(rxn_int_data++);
462 rxn_int_data, rxn_float_data,
463 rxn_env_data, time_step);
467 model_data, time_deriv, rxn_int_data, rxn_float_data, rxn_env_data,
481#ifdef CAMP_USE_SUNDIALS
484 int n_rxn = model_data->
n_rxn;
487 for (
int i_rxn = 0; i_rxn < n_rxn; i_rxn++) {
491 double *rxn_float_data =
493 double *rxn_env_data =
497 int rxn_type = *(rxn_int_data++);
503 rxn_float_data, rxn_env_data,
508 rxn_float_data, rxn_env_data, time_step);
512 rxn_float_data, rxn_env_data, time_step);
516 rxn_float_data, rxn_env_data,
521 model_data, jac, rxn_int_data, rxn_float_data, rxn_env_data,
526 model_data, jac, rxn_int_data, rxn_float_data, rxn_env_data,
531 rxn_float_data, rxn_env_data, time_step);
535 rxn_float_data, rxn_env_data,
540 rxn_float_data, rxn_env_data,
545 rxn_float_data, rxn_env_data,
550 rxn_int_data, rxn_float_data,
551 rxn_env_data, time_step);
555 rxn_int_data, rxn_float_data,
556 rxn_env_data, time_step);
560 model_data, jac, rxn_int_data, rxn_float_data, rxn_env_data,
565 rxn_env_data, time_step);
569 rxn_float_data, rxn_env_data,
574 rxn_float_data, rxn_env_data,
579 rxn_float_data, rxn_env_data,
593#ifdef CAMP_USE_SUNDIALS
596 realtype time_step) {
598 int n_rxn = model_data->
n_rxn;
601 for (
int i_rxn = 0; i_rxn < n_rxn; i_rxn++) {
605 double *rxn_float_data =
607 double *rxn_env_data =
611 int rxn_type = *(rxn_int_data++);
617 rxn_float_data, rxn_env_data,
622 model_data, jac, rxn_int_data, rxn_float_data, rxn_env_data,
627 model_data, jac, rxn_int_data, rxn_float_data, rxn_env_data,
632 rxn_float_data, rxn_env_data,
637 rxn_int_data, rxn_float_data,
638 rxn_env_data, time_step);
659 int n_env_param,
int *int_param,
660 double *float_param,
void *solver_data) {
668 double *rxn_float_data =
683 *(rxn_int_data++) = rxn_type;
686 for (; n_int_param > 0; --n_int_param) *(rxn_int_data++) = *(int_param++);
689 for (; n_float_param > 0; --n_float_param)
690 *(rxn_float_data++) = (double)*(float_param++);
709 void *update_data,
void *solver_data) {
718 int n_rxn = model_data->
n_rxn;
721 for (; (*rxn_id) < n_rxn; (*rxn_id)++) {
725 double *rxn_float_data =
728 double *rxn_env_data =
732 int rxn_type = *(rxn_int_data++);
737 if (rxn_type == update_rxn_type) {
741 rxn_float_data, rxn_env_data);
745 (
void *)update_data, rxn_int_data, rxn_float_data, rxn_env_data);
749 rxn_float_data, rxn_env_data);
753 rxn_float_data, rxn_env_data);
757 (
void *)update_data, rxn_int_data, rxn_float_data, rxn_env_data);
774 int n_rxn = model_data->
n_rxn;
776 printf(
"\n\nReaction data\n\nnumber of reactions: %d\n\n", n_rxn);
779 for (
int i_rxn = 0; i_rxn < n_rxn; i_rxn++) {
783 double *rxn_float_data =
787 int rxn_type = *(rxn_int_data++);
void rxn_update_ids(ModelData *model_data, int *deriv_ids, Jacobian jac)
Update the time derivative and Jacobian array ids.
void rxn_calc_deriv_specific_types(ModelData *model_data, TimeDerivative time_deriv, realtype time_step)
Calculate the time derivative for only some specific types.
#define RXN_CONDENSED_PHASE_PHOTOLYSIS
#define RXN_WENNBERG_TUNNELING
#define RXN_AQUEOUS_EQUILIBRIUM
void rxn_calc_jac_specific_types(ModelData *model_data, Jacobian jac, realtype time_step)
Calculate the Jacobian for only some specific types.
void rxn_add_condensed_data(int rxn_type, int n_int_param, int n_float_param, int n_env_param, int *int_param, double *float_param, void *solver_data)
Add condensed data to the condensed data block of memory.
void rxn_print_data(void *solver_data)
Print the reaction data.
void rxn_free_update_data(void *update_data)
Free an update data object.
void rxn_get_used_jac_elem(ModelData *model_data, Jacobian *jac)
Get the Jacobian elements used by a particular reaction.
#define RXN_FIRST_ORDER_LOSS
#define RXN_WENNBERG_NO_RO2
#define RXN_TERNARY_CHEMICAL_ACTIVATION
void rxn_update_env_state(ModelData *model_data)
Update reaction data for new environmental state.
#define RXN_CONDENSED_PHASE_ARRHENIUS
void rxn_calc_jac(ModelData *model_data, Jacobian jac, realtype time_step)
Calculate the Jacobian.
void rxn_update_data(int cell_id, int *rxn_id, int update_rxn_type, void *update_data, void *solver_data)
Update reaction data.
#define RXN_SIMPOL_PHASE_TRANSFER
#define RXN_HL_PHASE_TRANSFER
void rxn_calc_deriv(ModelData *model_data, TimeDerivative time_deriv, realtype time_step)
Calculate the time derivative .
#define RXN_WET_DEPOSITION
Header file for abstract reaction functions.
Header file for reaction solver functions.
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_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.
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_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_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_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.
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_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_aqueous_equilibrium_print(int *rxn_int_data, double *rxn_float_data)
Print the Aqueous Equilibrium reaction parameters.
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.
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.
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_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.
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_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.
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_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.
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.
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_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)
double * grid_cell_rxn_env_data