From 65f0f574920cfb542e1b35f8deb1ab583624d8d2 Mon Sep 17 00:00:00 2001 From: "terence.lehmann" Date: Wed, 20 Nov 2024 16:25:29 +0100 Subject: [PATCH] Adding example mechanism for PLOG evaluation --- Mechanisms/POLIMI2020/Make.package | 9 + Mechanisms/POLIMI2020/convert.sh | 5 + Mechanisms/POLIMI2020/mechanism.H | 35811 +++++++++++++++++++++++++ Mechanisms/POLIMI2020/mechanism.cpp | 702 + Mechanisms/POLIMI2020/mechanism.inp | 444 + Mechanisms/POLIMI2020/mechanism.yaml | 1664 ++ Mechanisms/POLIMI2020/therm.dat | 161 + Mechanisms/POLIMI2020/tran.dat | 51 + 8 files changed, 38847 insertions(+) create mode 100644 Mechanisms/POLIMI2020/Make.package create mode 100755 Mechanisms/POLIMI2020/convert.sh create mode 100644 Mechanisms/POLIMI2020/mechanism.H create mode 100644 Mechanisms/POLIMI2020/mechanism.cpp create mode 100644 Mechanisms/POLIMI2020/mechanism.inp create mode 100644 Mechanisms/POLIMI2020/mechanism.yaml create mode 100644 Mechanisms/POLIMI2020/therm.dat create mode 100644 Mechanisms/POLIMI2020/tran.dat diff --git a/Mechanisms/POLIMI2020/Make.package b/Mechanisms/POLIMI2020/Make.package new file mode 100644 index 000000000..24c663c9a --- /dev/null +++ b/Mechanisms/POLIMI2020/Make.package @@ -0,0 +1,9 @@ +CEXE_headers+=mechanism.H + +CEXE_sources+=mechanism.cpp + +LIBRARIES += + +INCLUDE_LOCATIONS += $(CHEM_DIR) + +VPATH_LOCATIONS += $(CHEM_DIR)/PMFs diff --git a/Mechanisms/POLIMI2020/convert.sh b/Mechanisms/POLIMI2020/convert.sh new file mode 100755 index 000000000..488208f39 --- /dev/null +++ b/Mechanisms/POLIMI2020/convert.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +MECH_HOME="$(pwd)" +MECH_FILE="${MECH_HOME}/mechanism.yaml" +bash ../converter.sh -f "${MECH_FILE}" diff --git a/Mechanisms/POLIMI2020/mechanism.H b/Mechanisms/POLIMI2020/mechanism.H new file mode 100644 index 000000000..a2c64405c --- /dev/null +++ b/Mechanisms/POLIMI2020/mechanism.H @@ -0,0 +1,35811 @@ +#ifndef MECHANISM_H +#define MECHANISM_H + +#include +#include + +/* Elements +0 C +1 H +2 N +3 O +4 Ar +5 He +*/ + +// Species +#define AR_ID 0 +#define N2_ID 1 +#define HE_ID 2 +#define H2_ID 3 +#define H_ID 4 +#define O2_ID 5 +#define O_ID 6 +#define H2O_ID 7 +#define OH_ID 8 +#define H2O2_ID 9 +#define HO2_ID 10 +#define NO_ID 11 +#define N2O_ID 12 +#define NO2_ID 13 +#define HNO_ID 14 +#define HNO2_ID 15 +#define HONO_ID 16 +#define HONO2_ID 17 +#define N2H2_ID 18 +#define H2NN_ID 19 +#define NH2OH_ID 20 +#define HNOH_ID 21 +#define NH3_ID 22 +#define N2H4_ID 23 +#define N_ID 24 +#define NO3_ID 25 +#define NH_ID 26 +#define NNH_ID 27 +#define NH2_ID 28 +#define H2NO_ID 29 +#define N2H3_ID 30 + +#define NUM_GAS_ELEMENTS 6 // Elements in the homogeneous phase +#define NUM_GAS_SPECIES 31 // Species in the homogeneous phase +#define NUM_GAS_REACTIONS 203 // Reactions in the homogeneous phase + +#define SITE_DENSITY 0.000000E+00 // mol/cm^2 + +#define NUM_SURFACE_ELEMENTS 0 // Additional elements in heterogeneous phase +#define NUM_SURFACE_SPECIES 0 // Species in the heterogeneous phase +#define NUM_SURFACE_REACTIONS 0 // Reactions in the heterogeneous phase + +#define NUM_ELEMENTS (NUM_GAS_ELEMENTS + NUM_SURFACE_ELEMENTS) +#define NUM_SPECIES (NUM_GAS_SPECIES + NUM_SURFACE_SPECIES) +#define NUM_REACTIONS (NUM_GAS_REACTIONS + NUM_SURFACE_REACTIONS) + +#define NUM_IONS 0 + +#define NUM_FIT 4 + +// ALWAYS on CPU stuff -- can have different def depending on if we are CPU or +// GPU based. Defined in mechanism.cpp +void atomicWeight(amrex::Real* awt); +// MISC +void CKAWT(amrex::Real* awt); +void CKNCF(int* ncf); +void CKSYME_STR(amrex::Vector& ename); +void CKSYMS_STR(amrex::Vector& kname); +void GET_RMAP(int* _rmap); +void CKINU(const int i, int& nspec, int* ki, int* nu); +void CKKFKR( + const amrex::Real P, + const amrex::Real T, + const amrex::Real* x, + amrex::Real* q_f, + amrex::Real* q_r); +void progressRateFR( + amrex::Real* q_f, amrex::Real* q_r, amrex::Real* sc, amrex::Real T); +// SPARSE INFORMATION +void SPARSITY_INFO(int* nJdata, const int* consP, int NCELLS); +void SPARSITY_INFO_SYST(int* nJdata, const int* consP, int NCELLS); +void SPARSITY_INFO_SYST_SIMPLIFIED(int* nJdata, const int* consP); +void +SPARSITY_PREPROC_CSC(int* rowVals, int* colPtrs, const int* consP, int NCELLS); +void SPARSITY_PREPROC_CSR( + int* colVals, int* rowPtrs, const int* consP, int NCELLS, int base); +void SPARSITY_PREPROC_SYST_CSR( + int* colVals, int* rowPtrs, const int* consP, int NCELLS, int base); +void SPARSITY_PREPROC_SYST_SIMPLIFIED_CSC( + int* rowVals, int* colPtrs, int* indx, const int* consP); +void SPARSITY_PREPROC_SYST_SIMPLIFIED_CSR( + int* colVals, int* rowPtr, const int* consP, int base); + +// A few mechanism parameters +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKINDX(int& mm, int& kk, int& ii, int& nfit) +{ + mm = 6; + kk = 31; + ii = 203; + nfit = -1; // Why do you need this anyway ? +} + +// inverse molecular weights +#ifdef AMREX_USE_GPU +AMREX_GPU_CONSTANT const amrex::Real global_imw[31] = { + 0.0250312891113892, // AR + 0.0356964374955379, // N2 + 0.2498374807187924, // HE + 0.4960317460317460, // H2 + 0.9920634920634921, // H + 0.0312519532470779, // O2 + 0.0625039064941559, // O + 0.0555092978073827, // H2O + 0.0587993179279120, // OH + 0.0293996589639560, // H2O2 + 0.0302975216627280, // HO2 + 0.0333266679997334, // NO + 0.0227205598345943, // N2O + 0.0217367677426367, // NO2 + 0.0322435029341588, // HNO + 0.0212707123561568, // HNO2 + 0.0212707123561568, // HONO + 0.0158699930172031, // HONO2 + 0.0333000333000333, // N2H2 + 0.0333000333000333, // H2NN + 0.0302755071147442, // NH2OH + 0.0312285303853601, // HNOH + 0.0587164582232400, // NH3 + 0.0312051426075017, // N2H4 + 0.0713928749910759, // N + 0.0161279917424682, // NO3 + 0.0666000666000666, // NH + 0.0344566191165323, // NNH + 0.0624102852150034, // NH2 + 0.0312285303853601, // H2NO + 0.0322185707842000, // N2H3 +}; +#endif +const amrex::Real h_global_imw[31] = { + 0.0250312891113892, // AR + 0.0356964374955379, // N2 + 0.2498374807187924, // HE + 0.4960317460317460, // H2 + 0.9920634920634921, // H + 0.0312519532470779, // O2 + 0.0625039064941559, // O + 0.0555092978073827, // H2O + 0.0587993179279120, // OH + 0.0293996589639560, // H2O2 + 0.0302975216627280, // HO2 + 0.0333266679997334, // NO + 0.0227205598345943, // N2O + 0.0217367677426367, // NO2 + 0.0322435029341588, // HNO + 0.0212707123561568, // HNO2 + 0.0212707123561568, // HONO + 0.0158699930172031, // HONO2 + 0.0333000333000333, // N2H2 + 0.0333000333000333, // H2NN + 0.0302755071147442, // NH2OH + 0.0312285303853601, // HNOH + 0.0587164582232400, // NH3 + 0.0312051426075017, // N2H4 + 0.0713928749910759, // N + 0.0161279917424682, // NO3 + 0.0666000666000666, // NH + 0.0344566191165323, // NNH + 0.0624102852150034, // NH2 + 0.0312285303853601, // H2NO + 0.0322185707842000, // N2H3 +}; + +// molecular weights +#ifdef AMREX_USE_GPU +AMREX_GPU_CONSTANT const amrex::Real global_mw[31] = { + 39.950000, // AR + 28.014000, // N2 + 4.002602, // HE + 2.016000, // H2 + 1.008000, // H + 31.998000, // O2 + 15.999000, // O + 18.015000, // H2O + 17.007000, // OH + 34.014000, // H2O2 + 33.006000, // HO2 + 30.006000, // NO + 44.013000, // N2O + 46.005000, // NO2 + 31.014000, // HNO + 47.013000, // HNO2 + 47.013000, // HONO + 63.012000, // HONO2 + 30.030000, // N2H2 + 30.030000, // H2NN + 33.030000, // NH2OH + 32.022000, // HNOH + 17.031000, // NH3 + 32.046000, // N2H4 + 14.007000, // N + 62.004000, // NO3 + 15.015000, // NH + 29.022000, // NNH + 16.023000, // NH2 + 32.022000, // H2NO + 31.038000, // N2H3 +}; +#endif +const amrex::Real h_global_mw[31] = { + 39.950000, // AR + 28.014000, // N2 + 4.002602, // HE + 2.016000, // H2 + 1.008000, // H + 31.998000, // O2 + 15.999000, // O + 18.015000, // H2O + 17.007000, // OH + 34.014000, // H2O2 + 33.006000, // HO2 + 30.006000, // NO + 44.013000, // N2O + 46.005000, // NO2 + 31.014000, // HNO + 47.013000, // HNO2 + 47.013000, // HONO + 63.012000, // HONO2 + 30.030000, // N2H2 + 30.030000, // H2NN + 33.030000, // NH2OH + 32.022000, // HNOH + 17.031000, // NH3 + 32.046000, // N2H4 + 14.007000, // N + 62.004000, // NO3 + 15.015000, // NH + 29.022000, // NNH + 16.023000, // NH2 + 32.022000, // H2NO + 31.038000, // N2H3 +}; + +// inverse molecular weights +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +get_imw(amrex::Real* imw_new) +{ + imw_new[0] = 0.0250312891113892; // AR + imw_new[1] = 0.0356964374955379; // N2 + imw_new[2] = 0.2498374807187924; // HE + imw_new[3] = 0.4960317460317460; // H2 + imw_new[4] = 0.9920634920634921; // H + imw_new[5] = 0.0312519532470779; // O2 + imw_new[6] = 0.0625039064941559; // O + imw_new[7] = 0.0555092978073827; // H2O + imw_new[8] = 0.0587993179279120; // OH + imw_new[9] = 0.0293996589639560; // H2O2 + imw_new[10] = 0.0302975216627280; // HO2 + imw_new[11] = 0.0333266679997334; // NO + imw_new[12] = 0.0227205598345943; // N2O + imw_new[13] = 0.0217367677426367; // NO2 + imw_new[14] = 0.0322435029341588; // HNO + imw_new[15] = 0.0212707123561568; // HNO2 + imw_new[16] = 0.0212707123561568; // HONO + imw_new[17] = 0.0158699930172031; // HONO2 + imw_new[18] = 0.0333000333000333; // N2H2 + imw_new[19] = 0.0333000333000333; // H2NN + imw_new[20] = 0.0302755071147442; // NH2OH + imw_new[21] = 0.0312285303853601; // HNOH + imw_new[22] = 0.0587164582232400; // NH3 + imw_new[23] = 0.0312051426075017; // N2H4 + imw_new[24] = 0.0713928749910759; // N + imw_new[25] = 0.0161279917424682; // NO3 + imw_new[26] = 0.0666000666000666; // NH + imw_new[27] = 0.0344566191165323; // NNH + imw_new[28] = 0.0624102852150034; // NH2 + imw_new[29] = 0.0312285303853601; // H2NO + imw_new[30] = 0.0322185707842000; // N2H3 +} + +// inverse molecular weight +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real +imw(const int n) +{ +#if AMREX_DEVICE_COMPILE + return global_imw[n]; +#else + return h_global_imw[n]; +#endif +} +// molecular weights +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +get_mw(amrex::Real* mw_new) +{ + mw_new[0] = 39.950000; // AR + mw_new[1] = 28.014000; // N2 + mw_new[2] = 4.002602; // HE + mw_new[3] = 2.016000; // H2 + mw_new[4] = 1.008000; // H + mw_new[5] = 31.998000; // O2 + mw_new[6] = 15.999000; // O + mw_new[7] = 18.015000; // H2O + mw_new[8] = 17.007000; // OH + mw_new[9] = 34.014000; // H2O2 + mw_new[10] = 33.006000; // HO2 + mw_new[11] = 30.006000; // NO + mw_new[12] = 44.013000; // N2O + mw_new[13] = 46.005000; // NO2 + mw_new[14] = 31.014000; // HNO + mw_new[15] = 47.013000; // HNO2 + mw_new[16] = 47.013000; // HONO + mw_new[17] = 63.012000; // HONO2 + mw_new[18] = 30.030000; // N2H2 + mw_new[19] = 30.030000; // H2NN + mw_new[20] = 33.030000; // NH2OH + mw_new[21] = 32.022000; // HNOH + mw_new[22] = 17.031000; // NH3 + mw_new[23] = 32.046000; // N2H4 + mw_new[24] = 14.007000; // N + mw_new[25] = 62.004000; // NO3 + mw_new[26] = 15.015000; // NH + mw_new[27] = 29.022000; // NNH + mw_new[28] = 16.023000; // NH2 + mw_new[29] = 32.022000; // H2NO + mw_new[30] = 31.038000; // N2H3 +} + +// molecular weight +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real +mw(const int n) +{ +#if AMREX_DEVICE_COMPILE + return global_mw[n]; +#else + return h_global_mw[n]; +#endif +} + +// Returns R, Rc, Patm +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKRP(amrex::Real& ru, amrex::Real& ruc, amrex::Real& pa) +{ + ru = 8.31446261815324e+07; + ruc = 1.98721558317399615845; + pa = 1.01325e+06; +} + +// compute Cv/R at the given temperature +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +cv_R(amrex::Real* species, const amrex::Real T) +{ + const amrex::Real T2 = T * T; + const amrex::Real T3 = T * T * T; + const amrex::Real T4 = T * T * T * T; + + // species with midpoint at T=1000 kelvin + if (T < 1000) { + // species 0: AR + species[0] = +1.49988611e+00 + 2.13037960e-07 * T + 8.97320772e-10 * T2 - + 2.31395752e-12 * T3 + 1.30201393e-15 * T4; + // species 1: N2 + species[1] = +2.53603521e+00 - 1.58270944e-04 * T - 4.26984251e-07 * T2 + + 2.37542590e-09 * T3 - 1.39708206e-12 * T4; + // species 2: HE + species[2] = +1.49976293e+00 + 1.01013432e-06 * T - 8.24578465e-10 * T2 - + 6.85983306e-13 * T3 + 7.24751856e-16 * T4; + // species 3: H2 + species[3] = +1.37694204e+00 + 7.73916922e-03 * T - 1.88735073e-05 * T2 + + 1.95517114e-08 * T3 - 7.17095663e-12 * T4; + // species 4: H + species[4] = +1.49975925e+00 + 6.73824499e-07 * T + 1.11807261e-09 * T2 - + 3.70192126e-12 * T3 + 2.14233822e-15 * T4; + // species 5: O2 + species[5] = +2.78498258e+00 - 3.02002233e-03 * T + 9.92029171e-06 * T2 - + 9.77840434e-09 * T3 + 3.28877702e-12 * T4; + // species 6: O + species[6] = +2.15906526e+00 - 3.21509999e-03 * T + 6.49255543e-06 * T2 - + 5.98755115e-09 * T3 + 2.06876117e-12 * T4; + // species 7: H2O + species[7] = +3.20147551e+00 - 2.05583546e-03 * T + 6.56547207e-06 * T2 - + 5.52906960e-09 * T3 + 1.78282605e-12 * T4; + // species 8: OH + species[8] = +2.97585165e+00 - 2.28555291e-03 * T + 4.33442882e-06 * T2 - + 3.59926640e-09 * T3 + 1.26706930e-12 * T4; + // species 9: H2O2 + species[9] = +3.23854160e+00 - 2.49610911e-04 * T + 1.59857901e-05 * T2 - + 2.06919945e-08 * T3 + 8.29766320e-12 * T4; + // species 10: HO2 + species[10] = +3.26251250e+00 - 4.45642032e-03 * T + 2.05164934e-05 * T2 - + 2.35794011e-08 * T3 + 9.05614257e-12 * T4; + // species 11: NO + species[11] = +3.21859896e+00 - 4.63988124e-03 * T + 1.10443049e-05 * T2 - + 9.34055507e-09 * T3 + 2.80554874e-12 * T4; + // species 12: N2O + species[12] = +1.25715020e+00 + 1.13047280e-02 * T - 1.36713190e-05 * T2 + + 9.68198030e-09 * T3 - 2.93071820e-12 * T4; + // species 13: NO2 + species[13] = +2.94403120e+00 - 1.58542900e-03 * T + 1.66578120e-05 * T2 - + 2.04754260e-08 * T3 + 7.83505640e-12 * T4; + // species 14: HNO + species[14] = +3.53525574e+00 - 5.68543377e-03 * T + 1.85198540e-05 * T2 - + 1.71881225e-08 * T3 + 5.55818157e-12 * T4; + // species 15: HNO2 + species[15] = +3.03779347e+00 - 4.46123109e-03 * T + 3.19440815e-05 * T2 - + 3.79359490e-08 * T3 + 1.44570885e-11 * T4; + // species 16: HONO + species[16] = +2.16416438e+00 + 8.50517773e-03 * T + 5.48561573e-07 * T2 - + 8.27656474e-09 * T3 + 4.39957151e-12 * T4; + // species 17: HONO2 + species[17] = +6.93291540e-01 + 1.90167702e-02 * T - 8.25176697e-06 * T2 - + 6.06113827e-09 * T3 + 4.65236978e-12 * T4; + // species 19: H2NN + species[19] = +3.53204001e+00 - 7.32418578e-03 * T + 3.00803713e-05 * T2 - + 3.04000551e-08 * T3 + 1.04700639e-11 * T4; + // species 20: NH2OH + species[20] = +2.21016092e+00 + 6.19671676e-03 * T + 1.10594948e-05 * T2 - + 1.96668262e-08 * T3 + 8.82516590e-12 * T4; + // species 21: HNOH + species[21] = +2.95608248e+00 - 3.02611020e-03 * T + 2.56874396e-05 * T2 - + 3.15645120e-08 * T3 + 1.24084574e-11 * T4; + // species 22: NH3 + species[22] = +3.14027871e+00 - 3.58489142e-03 * T + 1.89475904e-05 * T2 - + 1.98833970e-08 * T3 + 7.15267961e-12 * T4; + // species 23: N2H4 + species[23] = +2.83472149e+00 - 6.49129555e-04 * T + 3.76848463e-05 * T2 - + 5.00709182e-08 * T3 + 2.03362064e-11 * T4; + // species 24: N + species[24] = +1.50000000e+00; + // species 25: NO3 + species[25] = +1.17359330e+00 + 1.04902685e-02 * T + 1.10472669e-05 * T2 - + 2.81561867e-08 * T3 + 1.36583960e-11 * T4; + // species 26: NH + species[26] = +2.49295037e+00 + 3.11795720e-04 * T - 1.48906628e-06 * T2 + + 2.48167402e-09 * T3 - 1.03570916e-12 * T4; + // species 27: NNH + species[27] = +3.25474632e+00 - 3.45098298e-03 * T + 1.37788699e-05 * T2 - + 1.33263744e-08 * T3 + 4.41023397e-12 * T4; + // species 28: NH2 + species[28] = +3.19198016e+00 - 2.04602827e-03 * T + 6.67756134e-06 * T2 - + 5.24907235e-09 * T3 + 1.55589948e-12 * T4; + // species 29: H2NO + species[29] = +2.93201139e+00 - 1.64028165e-04 * T + 1.39161409e-05 * T2 - + 1.62747853e-08 * T3 + 6.00352834e-12 * T4; + // species 30: N2H3 + species[30] = +2.42125505e+00 + 1.34901590e-03 * T + 2.23459071e-05 * T2 - + 2.99727732e-08 * T3 + 1.20978970e-11 * T4; + } else { + // species 0: AR + species[0] = +1.49989176e+00 + 1.56134837e-07 * T - 7.76108557e-11 * T2 + + 1.52928085e-14 * T3 - 1.05304493e-18 * T4; + // species 1: N2 + species[1] = +1.93802970e+00 + 1.41838030e-03 * T - 5.03281045e-07 * T2 + + 8.07555464e-11 * T3 - 4.76064275e-15 * T4; + // species 2: HE + species[2] = +1.49985609e+00 + 2.19365392e-07 * T - 1.07525085e-10 * T2 + + 2.07198041e-14 * T3 - 1.39358612e-18 * T4; + // species 3: H2 + species[3] = +1.90207649e+00 + 8.68992581e-04 * T - 1.65864430e-07 * T2 + + 1.90851899e-11 * T3 - 9.31121789e-16 * T4; + // species 4: H + species[4] = +1.49985211e+00 + 2.34582548e-07 * T - 1.16171641e-10 * T2 + + 2.25708298e-14 * T3 - 1.52992005e-18 * T4; + // species 5: O2 + species[5] = +2.65980488e+00 + 6.59877372e-04 * T - 1.44158172e-07 * T2 + + 2.14656037e-11 * T3 - 1.36503784e-15 * T4; + // species 6: O + species[6] = +1.55160087e+00 - 3.83085457e-05 * T + 8.43197478e-10 * T2 + + 4.01267136e-12 * T3 - 4.17476574e-16 * T4; + // species 7: H2O + species[7] = +1.73117512e+00 + 2.95136995e-03 * T - 8.35359785e-07 * T2 + + 1.26088593e-10 * T3 - 8.40531676e-15 * T4; + // species 8: OH + species[8] = +1.84581721e+00 + 1.09723818e-03 * T - 2.89121101e-07 * T2 + + 4.09099910e-11 * T3 - 2.31382258e-15 * T4; + // species 9: H2O2 + species[9] = +3.54017480e+00 + 4.15970971e-03 * T - 1.30876777e-06 * T2 + + 2.00823615e-10 * T3 - 1.15509243e-14 * T4; + // species 10: HO2 + species[10] = +3.10564010e+00 + 2.04046836e-03 * T - 3.65877562e-07 * T2 + + 1.85973044e-11 * T3 + 4.98818315e-16 * T4; + // species 11: NO + species[11] = +2.26071234e+00 + 1.19101135e-03 * T - 4.29122646e-07 * T2 + + 6.94481463e-11 * T3 - 4.03295681e-15 * T4; + // species 12: N2O + species[12] = +3.82307290e+00 + 2.62702510e-03 * T - 9.58508720e-07 * T2 + + 1.60007120e-10 * T3 - 9.77523020e-15 * T4; + // species 13: NO2 + species[13] = +3.88475400e+00 + 2.17239550e-03 * T - 8.28069090e-07 * T2 + + 1.57475100e-10 * T3 - 1.05108950e-14 * T4; + // species 14: HNO + species[14] = +2.16598124e+00 + 2.99958892e-03 * T - 3.94376786e-07 * T2 - + 3.85344089e-11 * T3 + 7.07602668e-15 * T4; + // species 15: HNO2 + species[15] = +3.66358504e+00 + 4.89854351e-03 * T - 1.79694193e-06 * T2 + + 2.94420361e-10 * T3 - 1.78235577e-14 * T4; + // species 16: HONO + species[16] = +4.79144641e+00 + 3.64630732e-03 * T - 1.29112765e-06 * T2 + + 2.06498233e-10 * T3 - 1.22138679e-14 * T4; + // species 17: HONO2 + species[17] = +7.03098942e+00 + 4.46958589e-03 * T - 1.72459491e-06 * T2 + + 2.91556153e-10 * T3 - 1.80102702e-14 * T4; + // species 19: H2NN + species[19] = +2.05903670e+00 + 6.18382347e-03 * T - 2.22171165e-06 * T2 + + 3.58539206e-10 * T3 - 2.14532905e-14 * T4; + // species 20: NH2OH + species[20] = +2.88112502e+00 + 8.15708448e-03 * T - 2.82615576e-06 * T2 + + 4.37930933e-10 * T3 - 2.52724604e-14 * T4; + // species 21: HNOH + species[21] = +2.98321933e+00 + 4.88846374e-03 * T - 1.65086637e-06 * T2 + + 2.55371446e-10 * T3 - 1.48308561e-14 * T4; + // species 22: NH3 + species[22] = +1.36074311e+00 + 6.31850146e-03 * T - 2.28966806e-06 * T2 + + 4.11767411e-10 * T3 - 2.90836787e-14 * T4; + // species 23: N2H4 + species[23] = +3.93957357e+00 + 8.75017187e-03 * T - 2.99399058e-06 * T2 + + 4.67278418e-10 * T3 - 2.73068599e-14 * T4; + // species 24: N + species[24] = +1.41594290e+00 + 1.74890650e-04 * T - 1.19023690e-07 * T2 + + 3.02262440e-11 * T3 - 2.03609830e-15 * T4; + // species 25: NO3 + species[25] = +6.48347702e+00 + 2.57772064e-03 * T - 1.00945831e-06 * T2 + + 1.72314063e-10 * T3 - 1.07154008e-14 * T4; + // species 26: NH + species[26] = +1.78372644e+00 + 1.32985888e-03 * T - 4.24785573e-07 * T2 + + 7.83494442e-11 * T3 - 5.50451310e-15 * T4; + // species 27: NNH + species[27] = +2.42744423e+00 + 3.23295234e-03 * T - 1.17296299e-06 * T2 + + 1.90508356e-10 * T3 - 1.14491506e-14 * T4; + // species 28: NH2 + species[28] = +1.59263049e+00 + 3.47683597e-03 * T - 1.08271624e-06 * T2 + + 1.49342558e-10 * T3 - 5.75241187e-15 * T4; + // species 29: H2NO + species[29] = +2.75555914e+00 + 5.16219354e-03 * T - 1.76387387e-06 * T2 + + 2.75052692e-10 * T3 - 1.60643143e-14 * T4; + // species 30: N2H3 + species[30] = +3.04483566e+00 + 7.31130186e-03 * T - 2.47625799e-06 * T2 + + 3.83733021e-10 * T3 - 2.23107573e-14 * T4; + } + + // species with midpoint at T=1380 kelvin + if (T < 1380) { + // species 18: N2H2 + species[18] = +1.55589425e+00 + 6.54339081e-03 * T - 8.81947855e-07 * T2 - + 1.15971304e-09 * T3 + 3.97442230e-13 * T4; + } else { + // species 18: N2H2 + species[18] = +3.14686796e+00 + 4.81612315e-03 * T - 1.62748817e-06 * T2 + + 2.50556098e-10 * T3 - 1.44494188e-14 * T4; + } +} + +// compute Cp/R at the given temperature +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +cp_R(amrex::Real* species, const amrex::Real T) +{ + const amrex::Real T2 = T * T; + const amrex::Real T3 = T * T * T; + const amrex::Real T4 = T * T * T * T; + + // species with midpoint at T=1000 kelvin + if (T < 1000) { + // species 0: AR + species[0] = +2.49988611e+00 + 2.13037960e-07 * T + 8.97320772e-10 * T2 - + 2.31395752e-12 * T3 + 1.30201393e-15 * T4; + // species 1: N2 + species[1] = +3.53603521e+00 - 1.58270944e-04 * T - 4.26984251e-07 * T2 + + 2.37542590e-09 * T3 - 1.39708206e-12 * T4; + // species 2: HE + species[2] = +2.49976293e+00 + 1.01013432e-06 * T - 8.24578465e-10 * T2 - + 6.85983306e-13 * T3 + 7.24751856e-16 * T4; + // species 3: H2 + species[3] = +2.37694204e+00 + 7.73916922e-03 * T - 1.88735073e-05 * T2 + + 1.95517114e-08 * T3 - 7.17095663e-12 * T4; + // species 4: H + species[4] = +2.49975925e+00 + 6.73824499e-07 * T + 1.11807261e-09 * T2 - + 3.70192126e-12 * T3 + 2.14233822e-15 * T4; + // species 5: O2 + species[5] = +3.78498258e+00 - 3.02002233e-03 * T + 9.92029171e-06 * T2 - + 9.77840434e-09 * T3 + 3.28877702e-12 * T4; + // species 6: O + species[6] = +3.15906526e+00 - 3.21509999e-03 * T + 6.49255543e-06 * T2 - + 5.98755115e-09 * T3 + 2.06876117e-12 * T4; + // species 7: H2O + species[7] = +4.20147551e+00 - 2.05583546e-03 * T + 6.56547207e-06 * T2 - + 5.52906960e-09 * T3 + 1.78282605e-12 * T4; + // species 8: OH + species[8] = +3.97585165e+00 - 2.28555291e-03 * T + 4.33442882e-06 * T2 - + 3.59926640e-09 * T3 + 1.26706930e-12 * T4; + // species 9: H2O2 + species[9] = +4.23854160e+00 - 2.49610911e-04 * T + 1.59857901e-05 * T2 - + 2.06919945e-08 * T3 + 8.29766320e-12 * T4; + // species 10: HO2 + species[10] = +4.26251250e+00 - 4.45642032e-03 * T + 2.05164934e-05 * T2 - + 2.35794011e-08 * T3 + 9.05614257e-12 * T4; + // species 11: NO + species[11] = +4.21859896e+00 - 4.63988124e-03 * T + 1.10443049e-05 * T2 - + 9.34055507e-09 * T3 + 2.80554874e-12 * T4; + // species 12: N2O + species[12] = +2.25715020e+00 + 1.13047280e-02 * T - 1.36713190e-05 * T2 + + 9.68198030e-09 * T3 - 2.93071820e-12 * T4; + // species 13: NO2 + species[13] = +3.94403120e+00 - 1.58542900e-03 * T + 1.66578120e-05 * T2 - + 2.04754260e-08 * T3 + 7.83505640e-12 * T4; + // species 14: HNO + species[14] = +4.53525574e+00 - 5.68543377e-03 * T + 1.85198540e-05 * T2 - + 1.71881225e-08 * T3 + 5.55818157e-12 * T4; + // species 15: HNO2 + species[15] = +4.03779347e+00 - 4.46123109e-03 * T + 3.19440815e-05 * T2 - + 3.79359490e-08 * T3 + 1.44570885e-11 * T4; + // species 16: HONO + species[16] = +3.16416438e+00 + 8.50517773e-03 * T + 5.48561573e-07 * T2 - + 8.27656474e-09 * T3 + 4.39957151e-12 * T4; + // species 17: HONO2 + species[17] = +1.69329154e+00 + 1.90167702e-02 * T - 8.25176697e-06 * T2 - + 6.06113827e-09 * T3 + 4.65236978e-12 * T4; + // species 19: H2NN + species[19] = +4.53204001e+00 - 7.32418578e-03 * T + 3.00803713e-05 * T2 - + 3.04000551e-08 * T3 + 1.04700639e-11 * T4; + // species 20: NH2OH + species[20] = +3.21016092e+00 + 6.19671676e-03 * T + 1.10594948e-05 * T2 - + 1.96668262e-08 * T3 + 8.82516590e-12 * T4; + // species 21: HNOH + species[21] = +3.95608248e+00 - 3.02611020e-03 * T + 2.56874396e-05 * T2 - + 3.15645120e-08 * T3 + 1.24084574e-11 * T4; + // species 22: NH3 + species[22] = +4.14027871e+00 - 3.58489142e-03 * T + 1.89475904e-05 * T2 - + 1.98833970e-08 * T3 + 7.15267961e-12 * T4; + // species 23: N2H4 + species[23] = +3.83472149e+00 - 6.49129555e-04 * T + 3.76848463e-05 * T2 - + 5.00709182e-08 * T3 + 2.03362064e-11 * T4; + // species 24: N + species[24] = +2.50000000e+00; + // species 25: NO3 + species[25] = +2.17359330e+00 + 1.04902685e-02 * T + 1.10472669e-05 * T2 - + 2.81561867e-08 * T3 + 1.36583960e-11 * T4; + // species 26: NH + species[26] = +3.49295037e+00 + 3.11795720e-04 * T - 1.48906628e-06 * T2 + + 2.48167402e-09 * T3 - 1.03570916e-12 * T4; + // species 27: NNH + species[27] = +4.25474632e+00 - 3.45098298e-03 * T + 1.37788699e-05 * T2 - + 1.33263744e-08 * T3 + 4.41023397e-12 * T4; + // species 28: NH2 + species[28] = +4.19198016e+00 - 2.04602827e-03 * T + 6.67756134e-06 * T2 - + 5.24907235e-09 * T3 + 1.55589948e-12 * T4; + // species 29: H2NO + species[29] = +3.93201139e+00 - 1.64028165e-04 * T + 1.39161409e-05 * T2 - + 1.62747853e-08 * T3 + 6.00352834e-12 * T4; + // species 30: N2H3 + species[30] = +3.42125505e+00 + 1.34901590e-03 * T + 2.23459071e-05 * T2 - + 2.99727732e-08 * T3 + 1.20978970e-11 * T4; + } else { + // species 0: AR + species[0] = +2.49989176e+00 + 1.56134837e-07 * T - 7.76108557e-11 * T2 + + 1.52928085e-14 * T3 - 1.05304493e-18 * T4; + // species 1: N2 + species[1] = +2.93802970e+00 + 1.41838030e-03 * T - 5.03281045e-07 * T2 + + 8.07555464e-11 * T3 - 4.76064275e-15 * T4; + // species 2: HE + species[2] = +2.49985609e+00 + 2.19365392e-07 * T - 1.07525085e-10 * T2 + + 2.07198041e-14 * T3 - 1.39358612e-18 * T4; + // species 3: H2 + species[3] = +2.90207649e+00 + 8.68992581e-04 * T - 1.65864430e-07 * T2 + + 1.90851899e-11 * T3 - 9.31121789e-16 * T4; + // species 4: H + species[4] = +2.49985211e+00 + 2.34582548e-07 * T - 1.16171641e-10 * T2 + + 2.25708298e-14 * T3 - 1.52992005e-18 * T4; + // species 5: O2 + species[5] = +3.65980488e+00 + 6.59877372e-04 * T - 1.44158172e-07 * T2 + + 2.14656037e-11 * T3 - 1.36503784e-15 * T4; + // species 6: O + species[6] = +2.55160087e+00 - 3.83085457e-05 * T + 8.43197478e-10 * T2 + + 4.01267136e-12 * T3 - 4.17476574e-16 * T4; + // species 7: H2O + species[7] = +2.73117512e+00 + 2.95136995e-03 * T - 8.35359785e-07 * T2 + + 1.26088593e-10 * T3 - 8.40531676e-15 * T4; + // species 8: OH + species[8] = +2.84581721e+00 + 1.09723818e-03 * T - 2.89121101e-07 * T2 + + 4.09099910e-11 * T3 - 2.31382258e-15 * T4; + // species 9: H2O2 + species[9] = +4.54017480e+00 + 4.15970971e-03 * T - 1.30876777e-06 * T2 + + 2.00823615e-10 * T3 - 1.15509243e-14 * T4; + // species 10: HO2 + species[10] = +4.10564010e+00 + 2.04046836e-03 * T - 3.65877562e-07 * T2 + + 1.85973044e-11 * T3 + 4.98818315e-16 * T4; + // species 11: NO + species[11] = +3.26071234e+00 + 1.19101135e-03 * T - 4.29122646e-07 * T2 + + 6.94481463e-11 * T3 - 4.03295681e-15 * T4; + // species 12: N2O + species[12] = +4.82307290e+00 + 2.62702510e-03 * T - 9.58508720e-07 * T2 + + 1.60007120e-10 * T3 - 9.77523020e-15 * T4; + // species 13: NO2 + species[13] = +4.88475400e+00 + 2.17239550e-03 * T - 8.28069090e-07 * T2 + + 1.57475100e-10 * T3 - 1.05108950e-14 * T4; + // species 14: HNO + species[14] = +3.16598124e+00 + 2.99958892e-03 * T - 3.94376786e-07 * T2 - + 3.85344089e-11 * T3 + 7.07602668e-15 * T4; + // species 15: HNO2 + species[15] = +4.66358504e+00 + 4.89854351e-03 * T - 1.79694193e-06 * T2 + + 2.94420361e-10 * T3 - 1.78235577e-14 * T4; + // species 16: HONO + species[16] = +5.79144641e+00 + 3.64630732e-03 * T - 1.29112765e-06 * T2 + + 2.06498233e-10 * T3 - 1.22138679e-14 * T4; + // species 17: HONO2 + species[17] = +8.03098942e+00 + 4.46958589e-03 * T - 1.72459491e-06 * T2 + + 2.91556153e-10 * T3 - 1.80102702e-14 * T4; + // species 19: H2NN + species[19] = +3.05903670e+00 + 6.18382347e-03 * T - 2.22171165e-06 * T2 + + 3.58539206e-10 * T3 - 2.14532905e-14 * T4; + // species 20: NH2OH + species[20] = +3.88112502e+00 + 8.15708448e-03 * T - 2.82615576e-06 * T2 + + 4.37930933e-10 * T3 - 2.52724604e-14 * T4; + // species 21: HNOH + species[21] = +3.98321933e+00 + 4.88846374e-03 * T - 1.65086637e-06 * T2 + + 2.55371446e-10 * T3 - 1.48308561e-14 * T4; + // species 22: NH3 + species[22] = +2.36074311e+00 + 6.31850146e-03 * T - 2.28966806e-06 * T2 + + 4.11767411e-10 * T3 - 2.90836787e-14 * T4; + // species 23: N2H4 + species[23] = +4.93957357e+00 + 8.75017187e-03 * T - 2.99399058e-06 * T2 + + 4.67278418e-10 * T3 - 2.73068599e-14 * T4; + // species 24: N + species[24] = +2.41594290e+00 + 1.74890650e-04 * T - 1.19023690e-07 * T2 + + 3.02262440e-11 * T3 - 2.03609830e-15 * T4; + // species 25: NO3 + species[25] = +7.48347702e+00 + 2.57772064e-03 * T - 1.00945831e-06 * T2 + + 1.72314063e-10 * T3 - 1.07154008e-14 * T4; + // species 26: NH + species[26] = +2.78372644e+00 + 1.32985888e-03 * T - 4.24785573e-07 * T2 + + 7.83494442e-11 * T3 - 5.50451310e-15 * T4; + // species 27: NNH + species[27] = +3.42744423e+00 + 3.23295234e-03 * T - 1.17296299e-06 * T2 + + 1.90508356e-10 * T3 - 1.14491506e-14 * T4; + // species 28: NH2 + species[28] = +2.59263049e+00 + 3.47683597e-03 * T - 1.08271624e-06 * T2 + + 1.49342558e-10 * T3 - 5.75241187e-15 * T4; + // species 29: H2NO + species[29] = +3.75555914e+00 + 5.16219354e-03 * T - 1.76387387e-06 * T2 + + 2.75052692e-10 * T3 - 1.60643143e-14 * T4; + // species 30: N2H3 + species[30] = +4.04483566e+00 + 7.31130186e-03 * T - 2.47625799e-06 * T2 + + 3.83733021e-10 * T3 - 2.23107573e-14 * T4; + } + + // species with midpoint at T=1380 kelvin + if (T < 1380) { + // species 18: N2H2 + species[18] = +2.55589425e+00 + 6.54339081e-03 * T - 8.81947855e-07 * T2 - + 1.15971304e-09 * T3 + 3.97442230e-13 * T4; + } else { + // species 18: N2H2 + species[18] = +4.14686796e+00 + 4.81612315e-03 * T - 1.62748817e-06 * T2 + + 2.50556098e-10 * T3 - 1.44494188e-14 * T4; + } +} + +// compute the g/(RT) at the given temperature +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +gibbs(amrex::Real* species, const amrex::Real T) +{ + const amrex::Real T2 = T * T; + const amrex::Real T3 = T * T * T; + const amrex::Real T4 = T * T * T * T; + const amrex::Real invT = 1.0 / T; + const amrex::Real logT = log(T); + + // species with midpoint at T=1000 kelvin + if (T < 1000) { + // species 0: AR + species[0] = -7.453544810000000e+02 * invT - 1.880357560000000e+00 - + 2.499886110000000e+00 * logT - 1.065189800000000e-07 * T - + 1.495534620000000e-10 * T2 + 1.928297933333333e-13 * T3 - + 6.510069649999999e-17 * T4; + // species 1: N2 + species[1] = -1.047496450000000e+03 * invT + 5.899979700000002e-01 - + 3.536035210000000e+00 * logT + 7.913547200000000e-05 * T + + 7.116404183333333e-08 * T2 - 1.979521583333333e-10 * T3 + + 6.985410300000000e-14 * T4; + // species 2: HE + species[2] = -7.453409170000000e+02 * invT + 1.569962615000000e+00 - + 2.499762930000000e+00 * logT - 5.050671600000000e-07 * T + + 1.374297441666667e-10 * T2 + 5.716527549999999e-14 * T3 - + 3.623759280000000e-17 * T4; + // species 3: H2 + species[3] = -9.211730810000000e+02 * invT + 1.829757304000000e+00 - + 2.376942040000000e+00 * logT - 3.869584610000000e-03 * T + + 3.145584550000000e-06 * T2 - 1.629309283333333e-09 * T3 + + 3.585478315000000e-13 * T4; + // species 4: H + species[4] = +2.547376650000000e+04 * invT + 2.945333259000000e+00 - + 2.499759250000000e+00 * logT - 3.369122495000000e-07 * T - + 1.863454350000000e-10 * T2 + 3.084934383333333e-13 * T3 - + 1.071169110000000e-16 * T4; + // species 5: O2 + species[5] = -1.064135890000000e+03 * invT + 1.371754899999997e-01 - + 3.784982580000000e+00 * logT + 1.510011165000000e-03 * T - + 1.653381951666667e-06 * T2 + 8.148670283333334e-10 * T3 - + 1.644388510000000e-13 * T4; + // species 6: O + species[6] = +2.912984530000000e+04 * invT + 1.068281820000000e+00 - + 3.159065260000000e+00 * logT + 1.607549995000000e-03 * T - + 1.082092571666667e-06 * T2 + 4.989625958333333e-10 * T3 - + 1.034380585000000e-13 * T4; + // species 7: H2O + species[7] = -3.029500660000000e+04 * invT + 5.062086416000000e+00 - + 4.201475510000000e+00 * logT + 1.027917730000000e-03 * T - + 1.094245345000000e-06 * T2 + 4.607558000000000e-10 * T3 - + 8.914130250000000e-14 * T4; + // species 8: OH + species[8] = +3.393411370000000e+03 * invT + 4.011391376200000e+00 - + 3.975851650000000e+00 * logT + 1.142776455000000e-03 * T - + 7.224048033333334e-07 * T2 + 2.999388666666666e-10 * T3 - + 6.335346500000000e-14 * T4; + // species 9: H2O2 + species[9] = -1.764860030000000e+04 * invT + 6.500406299999995e-01 - + 4.238541600000000e+00 * logT + 1.248054555000000e-04 * T - + 2.664298350000000e-06 * T2 + 1.724332875000000e-09 * T3 - + 4.148831600000000e-13 * T4; + // species 10: HO2 + species[10] = +2.624423560000000e+02 * invT + 3.802756599999997e-01 - + 4.262512500000000e+00 * logT + 2.228210160000000e-03 * T - + 3.419415566666667e-06 * T2 + 1.964950091666666e-09 * T3 - + 4.528071285000000e-13 * T4; + // species 11: NO + species[11] = +9.845099640000000e+03 * invT + 1.937988949999999e+00 - + 4.218598960000000e+00 * logT + 2.319940620000000e-03 * T - + 1.840717483333334e-06 * T2 + 7.783795891666667e-10 * T3 - + 1.402774370000000e-13 * T4; + // species 12: N2O + species[12] = +8.741774600000001e+03 * invT - 8.500841800000000e+00 - + 2.257150200000000e+00 * logT - 5.652364000000000e-03 * T + + 2.278553166666666e-06 * T2 - 8.068316916666668e-10 * T3 + + 1.465359100000000e-13 * T4; + // species 13: NO2 + species[13] = +2.896618000000000e+03 * invT - 2.367960700000000e+00 - + 3.944031200000000e+00 * logT + 7.927145000000000e-04 * T - + 2.776302000000000e-06 * T2 + 1.706285500000000e-09 * T3 - + 3.917528200000000e-13 * T4; + // species 14: HNO + species[14] = +1.161830030000000e+04 * invT + 2.792096880000000e+00 - + 4.535255740000000e+00 * logT + 2.842716885000000e-03 * T - + 3.086642333333333e-06 * T2 + 1.432343541666667e-09 * T3 - + 2.779090785000000e-13 * T4; + // species 15: HNO2 + species[15] = -6.530882360000000e+03 * invT - 1.868407500000000e+00 - + 4.037793470000000e+00 * logT + 2.230615545000000e-03 * T - + 5.324013583333333e-06 * T2 + 3.161329083333333e-09 * T3 - + 7.228544250000000e-13 * T4; + // species 16: HONO + species[16] = -1.077440860000000e+04 * invT - 6.859029720000000e+00 - + 3.164164380000000e+00 * logT - 4.252588865000000e-03 * T - + 9.142692883333333e-08 * T2 + 6.897137283333333e-10 * T3 - + 2.199785755000000e-13 * T4; + // species 17: HONO2 + species[17] = -1.741989090000000e+04 * invT - 1.549069226000000e+01 - + 1.693291540000000e+00 * logT - 9.508385100000001e-03 * T + + 1.375294495000000e-06 * T2 + 5.050948558333334e-10 * T3 - + 2.326184890000000e-13 * T4; + // species 19: H2NN + species[19] = +3.495800030000000e+04 * invT + 3.021298060000000e+00 - + 4.532040010000000e+00 * logT + 3.662092890000000e-03 * T - + 5.013395216666666e-06 * T2 + 2.533337925000000e-09 * T3 - + 5.235031950000000e-13 * T4; + // species 20: NH2OH + species[20] = -6.581484810000000e+03 * invT - 4.722774790000000e+00 - + 3.210160920000000e+00 * logT - 3.098358380000000e-03 * T - + 1.843249133333333e-06 * T2 + 1.638902183333333e-09 * T3 - + 4.412582950000000e-13 * T4; + // species 21: HNOH + species[21] = +1.091997900000000e+04 * invT - 1.603427350000000e+00 - + 3.956082480000000e+00 * logT + 1.513055100000000e-03 * T - + 4.281239933333333e-06 * T2 + 2.630376000000000e-09 * T3 - + 6.204228700000000e-13 * T4; + // species 22: NH3 + species[22] = -6.685451580000000e+03 * invT + 4.156954198299999e+00 - + 4.140278710000000e+00 * logT + 1.792445710000000e-03 * T - + 3.157931733333333e-06 * T2 + 1.656949750000000e-09 * T3 - + 3.576339805000000e-13 * T4; + // species 23: N2H4 + species[23] = +1.008939250000000e+04 * invT - 1.917998810000000e+00 - + 3.834721490000000e+00 * logT + 3.245647775000000e-04 * T - + 6.280807716666667e-06 * T2 + 4.172576516666667e-09 * T3 - + 1.016810320000000e-12 * T4; + // species 24: N + species[24] = +5.610463800000000e+04 * invT - 1.693908800000000e+00 - + 2.500000000000000e+00 * logT; + // species 25: NO3 + species[25] = +7.812909050000000e+03 * invT - 1.242861570000000e+01 - + 2.173593300000000e+00 * logT - 5.245134250000000e-03 * T - + 1.841211150000000e-06 * T2 + 2.346348891666666e-09 * T3 - + 6.829198000000000e-13 * T4; + // species 26: NH + species[26] = +4.210597220000000e+04 * invT + 1.644600640000000e+00 - + 3.492950370000000e+00 * logT - 1.558978600000000e-04 * T + + 2.481777133333333e-07 * T2 - 2.068061683333333e-10 * T3 + + 5.178545800000000e-14 * T4; + // species 27: NNH + species[27] = +2.879320800000000e+04 * invT + 9.692286999999999e-01 - + 4.254746320000000e+00 * logT + 1.725491490000000e-03 * T - + 2.296478316666667e-06 * T2 + 1.110531200000000e-09 * T3 - + 2.205116985000000e-13 * T4; + // species 28: NH2 + species[28] = +2.118632860000000e+04 * invT + 4.282458684400000e+00 - + 4.191980160000000e+00 * logT + 1.023014135000000e-03 * T - + 1.112926890000000e-06 * T2 + 4.374226958333334e-10 * T3 - + 7.779497400000000e-14 * T4; + // species 29: H2NO + species[29] = +6.711789750000000e+03 * invT - 6.563589899999998e-01 - + 3.932011390000000e+00 * logT + 8.201408250000000e-05 * T - + 2.319356816666666e-06 * T2 + 1.356232108333334e-09 * T3 - + 3.001764170000000e-13 * T4; + // species 30: N2H3 + species[30] = +2.581989560000000e+04 * invT - 4.410508040000000e+00 - + 3.421255050000000e+00 * logT - 6.745079500000000e-04 * T - + 3.724317850000000e-06 * T2 + 2.497731100000000e-09 * T3 - + 6.048948500000000e-13 * T4; + } else { + // species 0: AR + species[0] = -7.453284030000000e+02 * invT - 1.880406590000000e+00 - + 2.499891760000000e+00 * logT - 7.806741850000000e-08 * T + + 1.293514261666667e-11 * T2 - 1.274400708333333e-15 * T3 + + 5.265224649999999e-20 * T4; + // species 1: N2 + species[1] = -9.171809900000000e+02 * invT - 3.017190150000000e+00 - + 2.938029700000000e+00 * logT - 7.091901500000000e-04 * T + + 8.388017416666667e-08 * T2 - 6.729628866666667e-12 * T3 + + 2.380321375000000e-16 * T4; + // species 2: HE + species[2] = -7.453091550000000e+02 * invT + 1.570321076000000e+00 - + 2.499856090000000e+00 * logT - 1.096826960000000e-07 * T + + 1.792084750000000e-11 * T2 - 1.726650341666667e-15 * T3 + + 6.967930599999999e-20 * T4; + // species 3: H2 + species[3] = -7.979487260000000e+02 * invT + 3.747667810000000e+00 - + 2.902076490000000e+00 * logT - 4.344962905000000e-04 * T + + 2.764407166666667e-08 * T2 - 1.590432491666667e-12 * T3 + + 4.655608945000000e-17 * T4; + // species 4: H + species[4] = +2.547380240000000e+04 * invT + 2.945716755000000e+00 - + 2.499852110000000e+00 * logT - 1.172912740000000e-07 * T + + 1.936194016666667e-11 * T2 - 1.880902483333334e-15 * T3 + + 7.649600250000000e-20 * T4; + // species 5: O2 + species[5] = -1.216030480000000e+03 * invT + 2.390634000000000e-01 - + 3.659804880000000e+00 * logT - 3.299386860000000e-04 * T + + 2.402636200000000e-08 * T2 - 1.788800308333333e-12 * T3 + + 6.825189199999999e-17 * T4; + // species 6: O + species[6] = +2.922876280000000e+04 * invT - 2.324569270000000e+00 - + 2.551600870000000e+00 * logT + 1.915427285000000e-05 * T - + 1.405329130000000e-10 * T2 - 3.343892800000000e-13 * T3 + + 2.087382870000000e-17 * T4; + // species 7: H2O + species[7] = -2.991690820000000e+04 * invT - 3.820654880000000e+00 - + 2.731175120000000e+00 * logT - 1.475684975000000e-03 * T + + 1.392266308333333e-07 * T2 - 1.050738275000000e-11 * T3 + + 4.202658380000000e-16 * T4; + // species 8: OH + species[8] = +3.717066100000000e+03 * invT - 2.957581940000000e+00 - + 2.845817210000000e+00 * logT - 5.486190900000000e-04 * T + + 4.818685016666667e-08 * T2 - 3.409165916666666e-12 * T3 + + 1.156911290000000e-16 * T4; + // species 9: H2O2 + species[9] = -1.795140290000000e+04 * invT + 3.684293055000000e+00 - + 4.540174800000000e+00 * logT - 2.079854855000000e-03 * T + + 2.181279616666667e-07 * T2 - 1.673530125000000e-11 * T3 + + 5.775462150000000e-16 * T4; + // species 10: HO2 + species[10] = +4.328987690000000e+01 * invT + 7.975588399999998e-01 - + 4.105640100000000e+00 * logT - 1.020234180000000e-03 * T + + 6.097959366666666e-08 * T2 - 1.549775366666667e-12 * T3 - + 2.494091575000000e-17 * T4; + // species 11: NO + species[11] = +9.921431320000000e+03 * invT - 3.108292840000000e+00 - + 3.260712340000000e+00 * logT - 5.955056750000000e-04 * T + + 7.152044099999999e-08 * T2 - 5.787345524999999e-12 * T3 + + 2.016478405000000e-16 * T4; + // species 12: N2O + species[12] = +8.073404700000000e+03 * invT + 7.024793700000000e+00 - + 4.823072900000000e+00 * logT - 1.313512550000000e-03 * T + + 1.597514533333333e-07 * T2 - 1.333392666666667e-11 * T3 + + 4.887615100000000e-16 * T4; + // species 13: NO2 + species[13] = +2.316498200000000e+03 * invT + 5.002170950000000e+00 - + 4.884754000000000e+00 * logT - 1.086197750000000e-03 * T + + 1.380115150000000e-07 * T2 - 1.312292500000000e-11 * T3 + + 5.255447500000000e-16 * T4; + // species 14: HNO + species[14] = +1.177263110000000e+04 * invT - 4.479130480000000e+00 - + 3.165981240000000e+00 * logT - 1.499794460000000e-03 * T + + 6.572946433333333e-08 * T2 + 3.211200741666667e-12 * T3 - + 3.538013340000000e-16 * T4; + // species 15: HNO2 + species[15] = -7.252163340000000e+03 * invT + 4.694190404000000e+00 - + 4.663585040000000e+00 * logT - 2.449271755000000e-03 * T + + 2.994903216666666e-07 * T2 - 2.453503008333333e-11 * T3 + + 8.911778850000000e-16 * T4; + // species 16: HONO + species[16] = -1.159743430000000e+04 * invT + 9.862899899999999e+00 - + 5.791446410000000e+00 * logT - 1.823153660000000e-03 * T + + 2.151879416666667e-07 * T2 - 1.720818608333333e-11 * T3 + + 6.106933950000000e-16 * T4; + // species 17: HONO2 + species[17] = -1.931381830000000e+04 * invT + 2.429264312000000e+01 - + 8.030989419999999e+00 * logT - 2.234792945000000e-03 * T + + 2.874324850000000e-07 * T2 - 2.429634608333334e-11 * T3 + + 9.005135099999999e-16 * T4; + // species 19: H2NN + species[19] = +3.485301490000000e+04 * invT - 3.639898450000000e+00 - + 3.059036700000000e+00 * logT - 3.091911735000000e-03 * T + + 3.702852750000000e-07 * T2 - 2.987826716666667e-11 * T3 + + 1.072664525000000e-15 * T4; + // species 20: NH2OH + species[20] = -6.860184190000000e+03 * invT + 8.956365999999960e-02 - + 3.881125020000000e+00 * logT - 4.078542240000000e-03 * T + + 4.710259600000000e-07 * T2 - 3.649424441666666e-11 * T3 + + 1.263623020000000e-15 * T4; + // species 21: HNOH + species[21] = +1.057801060000000e+04 * invT + 3.573909499999997e-01 - + 3.983219330000000e+00 * logT - 2.444231870000000e-03 * T + + 2.751443950000000e-07 * T2 - 2.128095383333333e-11 * T3 + + 7.415428049999999e-16 * T4; + // species 22: NH3 + species[22] = -6.415964730000000e+03 * invT - 5.660800180000001e+00 - + 2.360743110000000e+00 * logT - 3.159250730000000e-03 * T + + 3.816113433333333e-07 * T2 - 3.431395091666667e-11 * T3 + + 1.454183935000000e-15 * T4; + // species 23: N2H4 + species[23] = +9.282655479999999e+03 * invT + 7.633971290000000e+00 - + 4.939573570000000e+00 * logT - 4.375085935000000e-03 * T + + 4.989984300000000e-07 * T2 - 3.893986816666666e-11 * T3 + + 1.365342995000000e-15 * T4; + // species 24: N + species[24] = +5.613377500000000e+04 * invT - 2.233666600000000e+00 - + 2.415942900000000e+00 * logT - 8.744532500000000e-05 * T + + 1.983728166666667e-08 * T2 - 2.518853666666667e-12 * T3 + + 1.018049150000000e-16 * T4; + // species 25: NO3 + species[25] = +6.129904740000000e+03 * invT + 2.164529062000000e+01 - + 7.483477020000000e+00 * logT - 1.288860320000000e-03 * T + + 1.682430516666667e-07 * T2 - 1.435950525000000e-11 * T3 + + 5.357700400000000e-16 * T4; + // species 26: NH + species[26] = +4.234619450000000e+04 * invT - 2.957122190000000e+00 - + 2.783726440000000e+00 * logT - 6.649294400000000e-04 * T + + 7.079759550000000e-08 * T2 - 6.529120350000000e-12 * T3 + + 2.752256550000000e-16 * T4; + // species 27: NNH + species[27] = +2.876760260000000e+04 * invT - 2.964648100000000e+00 - + 3.427444230000000e+00 * logT - 1.616476170000000e-03 * T + + 1.954938316666667e-07 * T2 - 1.587569633333333e-11 * T3 + + 5.724575300000000e-16 * T4; + // species 28: NH2 + species[28] = +2.157373200000000e+04 * invT - 5.313023019999999e+00 - + 2.592630490000000e+00 * logT - 1.738417985000000e-03 * T + + 1.804527066666667e-07 * T2 - 1.244521316666667e-11 * T3 + + 2.876205935000000e-16 * T4; + // species 29: H2NO + species[29] = +6.518261770000000e+03 * invT - 5.537713900000005e-01 - + 3.755559140000000e+00 * logT - 2.581096770000000e-03 * T + + 2.939789783333333e-07 * T2 - 2.292105766666667e-11 * T3 + + 8.032157149999999e-16 * T4; + // species 30: N2H3 + species[30] = +2.532414200000000e+04 * invT + 1.160601740000001e+00 - + 4.044835660000000e+00 * logT - 3.655650930000000e-03 * T + + 4.127096650000000e-07 * T2 - 3.197775175000000e-11 * T3 + + 1.115537865000000e-15 * T4; + } + + // species with midpoint at T=1380 kelvin + if (T < 1380) { + // species 18: N2H2 + species[18] = +2.410850810000000e+04 * invT - 7.249152800000001e+00 - + 2.555894250000000e+00 * logT - 3.271695405000000e-03 * T + + 1.469913091666667e-07 * T2 + 9.664275333333333e-11 * T3 - + 1.987211150000000e-14 * T4; + } else { + // species 18: N2H2 + species[18] = +2.334440550000000e+04 * invT + 3.612745220000000e+00 - + 4.146867960000000e+00 * logT - 2.408061575000000e-03 * T + + 2.712480283333333e-07 * T2 - 2.087967483333334e-11 * T3 + + 7.224709400000001e-16 * T4; + } +} + +// compute the a/(RT) at the given temperature +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +helmholtz(amrex::Real* species, const amrex::Real T) +{ + const amrex::Real T2 = T * T; + const amrex::Real T3 = T * T * T; + const amrex::Real T4 = T * T * T * T; + const amrex::Real invT = 1.0 / T; + const amrex::Real logT = log(T); + + // species with midpoint at T=1000 kelvin + if (T < 1000) { + // species 0: AR + species[0] = -7.45354481e+02 * invT - 2.88035756e+00 - + 2.49988611e+00 * logT - 1.06518980e-07 * T - + 1.49553462e-10 * T2 + 1.92829793e-13 * T3 - + 6.51006965e-17 * T4; + // species 1: N2 + species[1] = -1.04749645e+03 * invT - 4.10002030e-01 - + 3.53603521e+00 * logT + 7.91354720e-05 * T + + 7.11640418e-08 * T2 - 1.97952158e-10 * T3 + + 6.98541030e-14 * T4; + // species 2: HE + species[2] = -7.45340917e+02 * invT + 5.69962615e-01 - + 2.49976293e+00 * logT - 5.05067160e-07 * T + + 1.37429744e-10 * T2 + 5.71652755e-14 * T3 - + 3.62375928e-17 * T4; + // species 3: H2 + species[3] = -9.21173081e+02 * invT + 8.29757304e-01 - + 2.37694204e+00 * logT - 3.86958461e-03 * T + + 3.14558455e-06 * T2 - 1.62930928e-09 * T3 + + 3.58547831e-13 * T4; + // species 4: H + species[4] = +2.54737665e+04 * invT + 1.94533326e+00 - + 2.49975925e+00 * logT - 3.36912250e-07 * T - + 1.86345435e-10 * T2 + 3.08493438e-13 * T3 - + 1.07116911e-16 * T4; + // species 5: O2 + species[5] = -1.06413589e+03 * invT - 8.62824510e-01 - + 3.78498258e+00 * logT + 1.51001116e-03 * T - + 1.65338195e-06 * T2 + 8.14867028e-10 * T3 - + 1.64438851e-13 * T4; + // species 6: O + species[6] = +2.91298453e+04 * invT + 6.82818200e-02 - + 3.15906526e+00 * logT + 1.60754999e-03 * T - + 1.08209257e-06 * T2 + 4.98962596e-10 * T3 - + 1.03438059e-13 * T4; + // species 7: H2O + species[7] = -3.02950066e+04 * invT + 4.06208642e+00 - + 4.20147551e+00 * logT + 1.02791773e-03 * T - + 1.09424534e-06 * T2 + 4.60755800e-10 * T3 - + 8.91413025e-14 * T4; + // species 8: OH + species[8] = +3.39341137e+03 * invT + 3.01139138e+00 - + 3.97585165e+00 * logT + 1.14277645e-03 * T - + 7.22404803e-07 * T2 + 2.99938867e-10 * T3 - + 6.33534650e-14 * T4; + // species 9: H2O2 + species[9] = -1.76486003e+04 * invT - 3.49959370e-01 - + 4.23854160e+00 * logT + 1.24805455e-04 * T - + 2.66429835e-06 * T2 + 1.72433288e-09 * T3 - + 4.14883160e-13 * T4; + // species 10: HO2 + species[10] = +2.62442356e+02 * invT - 6.19724340e-01 - + 4.26251250e+00 * logT + 2.22821016e-03 * T - + 3.41941557e-06 * T2 + 1.96495009e-09 * T3 - + 4.52807128e-13 * T4; + // species 11: NO + species[11] = +9.84509964e+03 * invT + 9.37988950e-01 - + 4.21859896e+00 * logT + 2.31994062e-03 * T - + 1.84071748e-06 * T2 + 7.78379589e-10 * T3 - + 1.40277437e-13 * T4; + // species 12: N2O + species[12] = +8.74177460e+03 * invT - 9.50084180e+00 - + 2.25715020e+00 * logT - 5.65236400e-03 * T + + 2.27855317e-06 * T2 - 8.06831692e-10 * T3 + + 1.46535910e-13 * T4; + // species 13: NO2 + species[13] = +2.89661800e+03 * invT - 3.36796070e+00 - + 3.94403120e+00 * logT + 7.92714500e-04 * T - + 2.77630200e-06 * T2 + 1.70628550e-09 * T3 - + 3.91752820e-13 * T4; + // species 14: HNO + species[14] = +1.16183003e+04 * invT + 1.79209688e+00 - + 4.53525574e+00 * logT + 2.84271688e-03 * T - + 3.08664233e-06 * T2 + 1.43234354e-09 * T3 - + 2.77909079e-13 * T4; + // species 15: HNO2 + species[15] = -6.53088236e+03 * invT - 2.86840750e+00 - + 4.03779347e+00 * logT + 2.23061555e-03 * T - + 5.32401358e-06 * T2 + 3.16132908e-09 * T3 - + 7.22854425e-13 * T4; + // species 16: HONO + species[16] = -1.07744086e+04 * invT - 7.85902972e+00 - + 3.16416438e+00 * logT - 4.25258887e-03 * T - + 9.14269288e-08 * T2 + 6.89713728e-10 * T3 - + 2.19978576e-13 * T4; + // species 17: HONO2 + species[17] = -1.74198909e+04 * invT - 1.64906923e+01 - + 1.69329154e+00 * logT - 9.50838510e-03 * T + + 1.37529450e-06 * T2 + 5.05094856e-10 * T3 - + 2.32618489e-13 * T4; + // species 19: H2NN + species[19] = +3.49580003e+04 * invT + 2.02129806e+00 - + 4.53204001e+00 * logT + 3.66209289e-03 * T - + 5.01339522e-06 * T2 + 2.53333792e-09 * T3 - + 5.23503195e-13 * T4; + // species 20: NH2OH + species[20] = -6.58148481e+03 * invT - 5.72277479e+00 - + 3.21016092e+00 * logT - 3.09835838e-03 * T - + 1.84324913e-06 * T2 + 1.63890218e-09 * T3 - + 4.41258295e-13 * T4; + // species 21: HNOH + species[21] = +1.09199790e+04 * invT - 2.60342735e+00 - + 3.95608248e+00 * logT + 1.51305510e-03 * T - + 4.28123993e-06 * T2 + 2.63037600e-09 * T3 - + 6.20422870e-13 * T4; + // species 22: NH3 + species[22] = -6.68545158e+03 * invT + 3.15695420e+00 - + 4.14027871e+00 * logT + 1.79244571e-03 * T - + 3.15793173e-06 * T2 + 1.65694975e-09 * T3 - + 3.57633980e-13 * T4; + // species 23: N2H4 + species[23] = +1.00893925e+04 * invT - 2.91799881e+00 - + 3.83472149e+00 * logT + 3.24564777e-04 * T - + 6.28080772e-06 * T2 + 4.17257652e-09 * T3 - + 1.01681032e-12 * T4; + // species 24: N + species[24] = + +5.61046380e+04 * invT - 2.69390880e+00 - 2.50000000e+00 * logT; + // species 25: NO3 + species[25] = +7.81290905e+03 * invT - 1.34286157e+01 - + 2.17359330e+00 * logT - 5.24513425e-03 * T - + 1.84121115e-06 * T2 + 2.34634889e-09 * T3 - + 6.82919800e-13 * T4; + // species 26: NH + species[26] = +4.21059722e+04 * invT + 6.44600640e-01 - + 3.49295037e+00 * logT - 1.55897860e-04 * T + + 2.48177713e-07 * T2 - 2.06806168e-10 * T3 + + 5.17854580e-14 * T4; + // species 27: NNH + species[27] = +2.87932080e+04 * invT - 3.07713000e-02 - + 4.25474632e+00 * logT + 1.72549149e-03 * T - + 2.29647832e-06 * T2 + 1.11053120e-09 * T3 - + 2.20511699e-13 * T4; + // species 28: NH2 + species[28] = +2.11863286e+04 * invT + 3.28245868e+00 - + 4.19198016e+00 * logT + 1.02301413e-03 * T - + 1.11292689e-06 * T2 + 4.37422696e-10 * T3 - + 7.77949740e-14 * T4; + // species 29: H2NO + species[29] = +6.71178975e+03 * invT - 1.65635899e+00 - + 3.93201139e+00 * logT + 8.20140825e-05 * T - + 2.31935682e-06 * T2 + 1.35623211e-09 * T3 - + 3.00176417e-13 * T4; + // species 30: N2H3 + species[30] = +2.58198956e+04 * invT - 5.41050804e+00 - + 3.42125505e+00 * logT - 6.74507950e-04 * T - + 3.72431785e-06 * T2 + 2.49773110e-09 * T3 - + 6.04894850e-13 * T4; + } else { + // species 0: AR + species[0] = -7.45328403e+02 * invT - 2.88040659e+00 - + 2.49989176e+00 * logT - 7.80674185e-08 * T + + 1.29351426e-11 * T2 - 1.27440071e-15 * T3 + + 5.26522465e-20 * T4; + // species 1: N2 + species[1] = -9.17180990e+02 * invT - 4.01719015e+00 - + 2.93802970e+00 * logT - 7.09190150e-04 * T + + 8.38801742e-08 * T2 - 6.72962887e-12 * T3 + + 2.38032138e-16 * T4; + // species 2: HE + species[2] = -7.45309155e+02 * invT + 5.70321076e-01 - + 2.49985609e+00 * logT - 1.09682696e-07 * T + + 1.79208475e-11 * T2 - 1.72665034e-15 * T3 + + 6.96793060e-20 * T4; + // species 3: H2 + species[3] = -7.97948726e+02 * invT + 2.74766781e+00 - + 2.90207649e+00 * logT - 4.34496291e-04 * T + + 2.76440717e-08 * T2 - 1.59043249e-12 * T3 + + 4.65560895e-17 * T4; + // species 4: H + species[4] = +2.54738024e+04 * invT + 1.94571675e+00 - + 2.49985211e+00 * logT - 1.17291274e-07 * T + + 1.93619402e-11 * T2 - 1.88090248e-15 * T3 + + 7.64960025e-20 * T4; + // species 5: O2 + species[5] = -1.21603048e+03 * invT - 7.60936600e-01 - + 3.65980488e+00 * logT - 3.29938686e-04 * T + + 2.40263620e-08 * T2 - 1.78880031e-12 * T3 + + 6.82518920e-17 * T4; + // species 6: O + species[6] = +2.92287628e+04 * invT - 3.32456927e+00 - + 2.55160087e+00 * logT + 1.91542728e-05 * T - + 1.40532913e-10 * T2 - 3.34389280e-13 * T3 + + 2.08738287e-17 * T4; + // species 7: H2O + species[7] = -2.99169082e+04 * invT - 4.82065488e+00 - + 2.73117512e+00 * logT - 1.47568497e-03 * T + + 1.39226631e-07 * T2 - 1.05073828e-11 * T3 + + 4.20265838e-16 * T4; + // species 8: OH + species[8] = +3.71706610e+03 * invT - 3.95758194e+00 - + 2.84581721e+00 * logT - 5.48619090e-04 * T + + 4.81868502e-08 * T2 - 3.40916592e-12 * T3 + + 1.15691129e-16 * T4; + // species 9: H2O2 + species[9] = -1.79514029e+04 * invT + 2.68429305e+00 - + 4.54017480e+00 * logT - 2.07985485e-03 * T + + 2.18127962e-07 * T2 - 1.67353013e-11 * T3 + + 5.77546215e-16 * T4; + // species 10: HO2 + species[10] = +4.32898769e+01 * invT - 2.02441160e-01 - + 4.10564010e+00 * logT - 1.02023418e-03 * T + + 6.09795937e-08 * T2 - 1.54977537e-12 * T3 - + 2.49409157e-17 * T4; + // species 11: NO + species[11] = +9.92143132e+03 * invT - 4.10829284e+00 - + 3.26071234e+00 * logT - 5.95505675e-04 * T + + 7.15204410e-08 * T2 - 5.78734552e-12 * T3 + + 2.01647840e-16 * T4; + // species 12: N2O + species[12] = +8.07340470e+03 * invT + 6.02479370e+00 - + 4.82307290e+00 * logT - 1.31351255e-03 * T + + 1.59751453e-07 * T2 - 1.33339267e-11 * T3 + + 4.88761510e-16 * T4; + // species 13: NO2 + species[13] = +2.31649820e+03 * invT + 4.00217095e+00 - + 4.88475400e+00 * logT - 1.08619775e-03 * T + + 1.38011515e-07 * T2 - 1.31229250e-11 * T3 + + 5.25544750e-16 * T4; + // species 14: HNO + species[14] = +1.17726311e+04 * invT - 5.47913048e+00 - + 3.16598124e+00 * logT - 1.49979446e-03 * T + + 6.57294643e-08 * T2 + 3.21120074e-12 * T3 - + 3.53801334e-16 * T4; + // species 15: HNO2 + species[15] = -7.25216334e+03 * invT + 3.69419040e+00 - + 4.66358504e+00 * logT - 2.44927175e-03 * T + + 2.99490322e-07 * T2 - 2.45350301e-11 * T3 + + 8.91177885e-16 * T4; + // species 16: HONO + species[16] = -1.15974343e+04 * invT + 8.86289990e+00 - + 5.79144641e+00 * logT - 1.82315366e-03 * T + + 2.15187942e-07 * T2 - 1.72081861e-11 * T3 + + 6.10693395e-16 * T4; + // species 17: HONO2 + species[17] = -1.93138183e+04 * invT + 2.32926431e+01 - + 8.03098942e+00 * logT - 2.23479294e-03 * T + + 2.87432485e-07 * T2 - 2.42963461e-11 * T3 + + 9.00513510e-16 * T4; + // species 19: H2NN + species[19] = +3.48530149e+04 * invT - 4.63989845e+00 - + 3.05903670e+00 * logT - 3.09191173e-03 * T + + 3.70285275e-07 * T2 - 2.98782672e-11 * T3 + + 1.07266452e-15 * T4; + // species 20: NH2OH + species[20] = -6.86018419e+03 * invT - 9.10436340e-01 - + 3.88112502e+00 * logT - 4.07854224e-03 * T + + 4.71025960e-07 * T2 - 3.64942444e-11 * T3 + + 1.26362302e-15 * T4; + // species 21: HNOH + species[21] = +1.05780106e+04 * invT - 6.42609050e-01 - + 3.98321933e+00 * logT - 2.44423187e-03 * T + + 2.75144395e-07 * T2 - 2.12809538e-11 * T3 + + 7.41542805e-16 * T4; + // species 22: NH3 + species[22] = -6.41596473e+03 * invT - 6.66080018e+00 - + 2.36074311e+00 * logT - 3.15925073e-03 * T + + 3.81611343e-07 * T2 - 3.43139509e-11 * T3 + + 1.45418393e-15 * T4; + // species 23: N2H4 + species[23] = +9.28265548e+03 * invT + 6.63397129e+00 - + 4.93957357e+00 * logT - 4.37508594e-03 * T + + 4.98998430e-07 * T2 - 3.89398682e-11 * T3 + + 1.36534300e-15 * T4; + // species 24: N + species[24] = +5.61337750e+04 * invT - 3.23366660e+00 - + 2.41594290e+00 * logT - 8.74453250e-05 * T + + 1.98372817e-08 * T2 - 2.51885367e-12 * T3 + + 1.01804915e-16 * T4; + // species 25: NO3 + species[25] = +6.12990474e+03 * invT + 2.06452906e+01 - + 7.48347702e+00 * logT - 1.28886032e-03 * T + + 1.68243052e-07 * T2 - 1.43595052e-11 * T3 + + 5.35770040e-16 * T4; + // species 26: NH + species[26] = +4.23461945e+04 * invT - 3.95712219e+00 - + 2.78372644e+00 * logT - 6.64929440e-04 * T + + 7.07975955e-08 * T2 - 6.52912035e-12 * T3 + + 2.75225655e-16 * T4; + // species 27: NNH + species[27] = +2.87676026e+04 * invT - 3.96464810e+00 - + 3.42744423e+00 * logT - 1.61647617e-03 * T + + 1.95493832e-07 * T2 - 1.58756963e-11 * T3 + + 5.72457530e-16 * T4; + // species 28: NH2 + species[28] = +2.15737320e+04 * invT - 6.31302302e+00 - + 2.59263049e+00 * logT - 1.73841799e-03 * T + + 1.80452707e-07 * T2 - 1.24452132e-11 * T3 + + 2.87620594e-16 * T4; + // species 29: H2NO + species[29] = +6.51826177e+03 * invT - 1.55377139e+00 - + 3.75555914e+00 * logT - 2.58109677e-03 * T + + 2.93978978e-07 * T2 - 2.29210577e-11 * T3 + + 8.03215715e-16 * T4; + // species 30: N2H3 + species[30] = +2.53241420e+04 * invT + 1.60601740e-01 - + 4.04483566e+00 * logT - 3.65565093e-03 * T + + 4.12709665e-07 * T2 - 3.19777517e-11 * T3 + + 1.11553786e-15 * T4; + } + + // species with midpoint at T=1380 kelvin + if (T < 1380) { + // species 18: N2H2 + species[18] = +2.41085081e+04 * invT - 8.24915280e+00 - + 2.55589425e+00 * logT - 3.27169540e-03 * T + + 1.46991309e-07 * T2 + 9.66427533e-11 * T3 - + 1.98721115e-14 * T4; + } else { + // species 18: N2H2 + species[18] = +2.33444055e+04 * invT + 2.61274522e+00 - + 4.14686796e+00 * logT - 2.40806157e-03 * T + + 2.71248028e-07 * T2 - 2.08796748e-11 * T3 + + 7.22470940e-16 * T4; + } +} + +// compute the e/(RT) at the given temperature +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +speciesInternalEnergy(amrex::Real* species, const amrex::Real T) +{ + const amrex::Real T2 = T * T; + const amrex::Real T3 = T * T * T; + const amrex::Real T4 = T * T * T * T; + const amrex::Real invT = 1.0 / T; + + // species with midpoint at T=1000 kelvin + if (T < 1000) { + // species 0: AR + species[0] = +1.49988611e+00 + 1.06518980e-07 * T + 2.99106924e-10 * T2 - + 5.78489380e-13 * T3 + 2.60402786e-16 * T4 - + 7.45354481e+02 * invT; + // species 1: N2 + species[1] = +2.53603521e+00 - 7.91354720e-05 * T - 1.42328084e-07 * T2 + + 5.93856475e-10 * T3 - 2.79416412e-13 * T4 - + 1.04749645e+03 * invT; + // species 2: HE + species[2] = +1.49976293e+00 + 5.05067160e-07 * T - 2.74859488e-10 * T2 - + 1.71495826e-13 * T3 + 1.44950371e-16 * T4 - + 7.45340917e+02 * invT; + // species 3: H2 + species[3] = +1.37694204e+00 + 3.86958461e-03 * T - 6.29116910e-06 * T2 + + 4.88792785e-09 * T3 - 1.43419133e-12 * T4 - + 9.21173081e+02 * invT; + // species 4: H + species[4] = +1.49975925e+00 + 3.36912250e-07 * T + 3.72690870e-10 * T2 - + 9.25480315e-13 * T3 + 4.28467644e-16 * T4 + + 2.54737665e+04 * invT; + // species 5: O2 + species[5] = +2.78498258e+00 - 1.51001116e-03 * T + 3.30676390e-06 * T2 - + 2.44460109e-09 * T3 + 6.57755404e-13 * T4 - + 1.06413589e+03 * invT; + // species 6: O + species[6] = +2.15906526e+00 - 1.60754999e-03 * T + 2.16418514e-06 * T2 - + 1.49688779e-09 * T3 + 4.13752234e-13 * T4 + + 2.91298453e+04 * invT; + // species 7: H2O + species[7] = +3.20147551e+00 - 1.02791773e-03 * T + 2.18849069e-06 * T2 - + 1.38226740e-09 * T3 + 3.56565210e-13 * T4 - + 3.02950066e+04 * invT; + // species 8: OH + species[8] = +2.97585165e+00 - 1.14277645e-03 * T + 1.44480961e-06 * T2 - + 8.99816600e-10 * T3 + 2.53413860e-13 * T4 + + 3.39341137e+03 * invT; + // species 9: H2O2 + species[9] = +3.23854160e+00 - 1.24805455e-04 * T + 5.32859670e-06 * T2 - + 5.17299863e-09 * T3 + 1.65953264e-12 * T4 - + 1.76486003e+04 * invT; + // species 10: HO2 + species[10] = +3.26251250e+00 - 2.22821016e-03 * T + 6.83883113e-06 * T2 - + 5.89485027e-09 * T3 + 1.81122851e-12 * T4 + + 2.62442356e+02 * invT; + // species 11: NO + species[11] = +3.21859896e+00 - 2.31994062e-03 * T + 3.68143497e-06 * T2 - + 2.33513877e-09 * T3 + 5.61109748e-13 * T4 + + 9.84509964e+03 * invT; + // species 12: N2O + species[12] = +1.25715020e+00 + 5.65236400e-03 * T - 4.55710633e-06 * T2 + + 2.42049508e-09 * T3 - 5.86143640e-13 * T4 + + 8.74177460e+03 * invT; + // species 13: NO2 + species[13] = +2.94403120e+00 - 7.92714500e-04 * T + 5.55260400e-06 * T2 - + 5.11885650e-09 * T3 + 1.56701128e-12 * T4 + + 2.89661800e+03 * invT; + // species 14: HNO + species[14] = +3.53525574e+00 - 2.84271688e-03 * T + 6.17328467e-06 * T2 - + 4.29703062e-09 * T3 + 1.11163631e-12 * T4 + + 1.16183003e+04 * invT; + // species 15: HNO2 + species[15] = +3.03779347e+00 - 2.23061555e-03 * T + 1.06480272e-05 * T2 - + 9.48398725e-09 * T3 + 2.89141770e-12 * T4 - + 6.53088236e+03 * invT; + // species 16: HONO + species[16] = +2.16416438e+00 + 4.25258887e-03 * T + 1.82853858e-07 * T2 - + 2.06914118e-09 * T3 + 8.79914302e-13 * T4 - + 1.07744086e+04 * invT; + // species 17: HONO2 + species[17] = +6.93291540e-01 + 9.50838510e-03 * T - 2.75058899e-06 * T2 - + 1.51528457e-09 * T3 + 9.30473956e-13 * T4 - + 1.74198909e+04 * invT; + // species 19: H2NN + species[19] = +3.53204001e+00 - 3.66209289e-03 * T + 1.00267904e-05 * T2 - + 7.60001377e-09 * T3 + 2.09401278e-12 * T4 + + 3.49580003e+04 * invT; + // species 20: NH2OH + species[20] = +2.21016092e+00 + 3.09835838e-03 * T + 3.68649827e-06 * T2 - + 4.91670655e-09 * T3 + 1.76503318e-12 * T4 - + 6.58148481e+03 * invT; + // species 21: HNOH + species[21] = +2.95608248e+00 - 1.51305510e-03 * T + 8.56247987e-06 * T2 - + 7.89112800e-09 * T3 + 2.48169148e-12 * T4 + + 1.09199790e+04 * invT; + // species 22: NH3 + species[22] = +3.14027871e+00 - 1.79244571e-03 * T + 6.31586347e-06 * T2 - + 4.97084925e-09 * T3 + 1.43053592e-12 * T4 - + 6.68545158e+03 * invT; + // species 23: N2H4 + species[23] = +2.83472149e+00 - 3.24564777e-04 * T + 1.25616154e-05 * T2 - + 1.25177296e-08 * T3 + 4.06724128e-12 * T4 + + 1.00893925e+04 * invT; + // species 24: N + species[24] = +1.50000000e+00 + 5.61046380e+04 * invT; + // species 25: NO3 + species[25] = +1.17359330e+00 + 5.24513425e-03 * T + 3.68242230e-06 * T2 - + 7.03904667e-09 * T3 + 2.73167920e-12 * T4 + + 7.81290905e+03 * invT; + // species 26: NH + species[26] = +2.49295037e+00 + 1.55897860e-04 * T - 4.96355427e-07 * T2 + + 6.20418505e-10 * T3 - 2.07141832e-13 * T4 + + 4.21059722e+04 * invT; + // species 27: NNH + species[27] = +3.25474632e+00 - 1.72549149e-03 * T + 4.59295663e-06 * T2 - + 3.33159360e-09 * T3 + 8.82046794e-13 * T4 + + 2.87932080e+04 * invT; + // species 28: NH2 + species[28] = +3.19198016e+00 - 1.02301413e-03 * T + 2.22585378e-06 * T2 - + 1.31226809e-09 * T3 + 3.11179896e-13 * T4 + + 2.11863286e+04 * invT; + // species 29: H2NO + species[29] = +2.93201139e+00 - 8.20140825e-05 * T + 4.63871363e-06 * T2 - + 4.06869633e-09 * T3 + 1.20070567e-12 * T4 + + 6.71178975e+03 * invT; + // species 30: N2H3 + species[30] = +2.42125505e+00 + 6.74507950e-04 * T + 7.44863570e-06 * T2 - + 7.49319330e-09 * T3 + 2.41957940e-12 * T4 + + 2.58198956e+04 * invT; + } else { + // species 0: AR + species[0] = +1.49989176e+00 + 7.80674185e-08 * T - 2.58702852e-11 * T2 + + 3.82320212e-15 * T3 - 2.10608986e-19 * T4 - + 7.45328403e+02 * invT; + // species 1: N2 + species[1] = +1.93802970e+00 + 7.09190150e-04 * T - 1.67760348e-07 * T2 + + 2.01888866e-11 * T3 - 9.52128550e-16 * T4 - + 9.17180990e+02 * invT; + // species 2: HE + species[2] = +1.49985609e+00 + 1.09682696e-07 * T - 3.58416950e-11 * T2 + + 5.17995102e-15 * T3 - 2.78717224e-19 * T4 - + 7.45309155e+02 * invT; + // species 3: H2 + species[3] = +1.90207649e+00 + 4.34496291e-04 * T - 5.52881433e-08 * T2 + + 4.77129748e-12 * T3 - 1.86224358e-16 * T4 - + 7.97948726e+02 * invT; + // species 4: H + species[4] = +1.49985211e+00 + 1.17291274e-07 * T - 3.87238803e-11 * T2 + + 5.64270745e-15 * T3 - 3.05984010e-19 * T4 + + 2.54738024e+04 * invT; + // species 5: O2 + species[5] = +2.65980488e+00 + 3.29938686e-04 * T - 4.80527240e-08 * T2 + + 5.36640092e-12 * T3 - 2.73007568e-16 * T4 - + 1.21603048e+03 * invT; + // species 6: O + species[6] = +1.55160087e+00 - 1.91542728e-05 * T + 2.81065826e-10 * T2 + + 1.00316784e-12 * T3 - 8.34953148e-17 * T4 + + 2.92287628e+04 * invT; + // species 7: H2O + species[7] = +1.73117512e+00 + 1.47568497e-03 * T - 2.78453262e-07 * T2 + + 3.15221483e-11 * T3 - 1.68106335e-15 * T4 - + 2.99169082e+04 * invT; + // species 8: OH + species[8] = +1.84581721e+00 + 5.48619090e-04 * T - 9.63737003e-08 * T2 + + 1.02274977e-11 * T3 - 4.62764516e-16 * T4 + + 3.71706610e+03 * invT; + // species 9: H2O2 + species[9] = +3.54017480e+00 + 2.07985485e-03 * T - 4.36255923e-07 * T2 + + 5.02059038e-11 * T3 - 2.31018486e-15 * T4 - + 1.79514029e+04 * invT; + // species 10: HO2 + species[10] = +3.10564010e+00 + 1.02023418e-03 * T - 1.21959187e-07 * T2 + + 4.64932610e-12 * T3 + 9.97636630e-17 * T4 + + 4.32898769e+01 * invT; + // species 11: NO + species[11] = +2.26071234e+00 + 5.95505675e-04 * T - 1.43040882e-07 * T2 + + 1.73620366e-11 * T3 - 8.06591362e-16 * T4 + + 9.92143132e+03 * invT; + // species 12: N2O + species[12] = +3.82307290e+00 + 1.31351255e-03 * T - 3.19502907e-07 * T2 + + 4.00017800e-11 * T3 - 1.95504604e-15 * T4 + + 8.07340470e+03 * invT; + // species 13: NO2 + species[13] = +3.88475400e+00 + 1.08619775e-03 * T - 2.76023030e-07 * T2 + + 3.93687750e-11 * T3 - 2.10217900e-15 * T4 + + 2.31649820e+03 * invT; + // species 14: HNO + species[14] = +2.16598124e+00 + 1.49979446e-03 * T - 1.31458929e-07 * T2 - + 9.63360222e-12 * T3 + 1.41520534e-15 * T4 + + 1.17726311e+04 * invT; + // species 15: HNO2 + species[15] = +3.66358504e+00 + 2.44927175e-03 * T - 5.98980643e-07 * T2 + + 7.36050902e-11 * T3 - 3.56471154e-15 * T4 - + 7.25216334e+03 * invT; + // species 16: HONO + species[16] = +4.79144641e+00 + 1.82315366e-03 * T - 4.30375883e-07 * T2 + + 5.16245582e-11 * T3 - 2.44277358e-15 * T4 - + 1.15974343e+04 * invT; + // species 17: HONO2 + species[17] = +7.03098942e+00 + 2.23479294e-03 * T - 5.74864970e-07 * T2 + + 7.28890383e-11 * T3 - 3.60205404e-15 * T4 - + 1.93138183e+04 * invT; + // species 19: H2NN + species[19] = +2.05903670e+00 + 3.09191173e-03 * T - 7.40570550e-07 * T2 + + 8.96348015e-11 * T3 - 4.29065810e-15 * T4 + + 3.48530149e+04 * invT; + // species 20: NH2OH + species[20] = +2.88112502e+00 + 4.07854224e-03 * T - 9.42051920e-07 * T2 + + 1.09482733e-10 * T3 - 5.05449208e-15 * T4 - + 6.86018419e+03 * invT; + // species 21: HNOH + species[21] = +2.98321933e+00 + 2.44423187e-03 * T - 5.50288790e-07 * T2 + + 6.38428615e-11 * T3 - 2.96617122e-15 * T4 + + 1.05780106e+04 * invT; + // species 22: NH3 + species[22] = +1.36074311e+00 + 3.15925073e-03 * T - 7.63222687e-07 * T2 + + 1.02941853e-10 * T3 - 5.81673574e-15 * T4 - + 6.41596473e+03 * invT; + // species 23: N2H4 + species[23] = +3.93957357e+00 + 4.37508594e-03 * T - 9.97996860e-07 * T2 + + 1.16819604e-10 * T3 - 5.46137198e-15 * T4 + + 9.28265548e+03 * invT; + // species 24: N + species[24] = +1.41594290e+00 + 8.74453250e-05 * T - 3.96745633e-08 * T2 + + 7.55656100e-12 * T3 - 4.07219660e-16 * T4 + + 5.61337750e+04 * invT; + // species 25: NO3 + species[25] = +6.48347702e+00 + 1.28886032e-03 * T - 3.36486103e-07 * T2 + + 4.30785157e-11 * T3 - 2.14308016e-15 * T4 + + 6.12990474e+03 * invT; + // species 26: NH + species[26] = +1.78372644e+00 + 6.64929440e-04 * T - 1.41595191e-07 * T2 + + 1.95873611e-11 * T3 - 1.10090262e-15 * T4 + + 4.23461945e+04 * invT; + // species 27: NNH + species[27] = +2.42744423e+00 + 1.61647617e-03 * T - 3.90987663e-07 * T2 + + 4.76270890e-11 * T3 - 2.28983012e-15 * T4 + + 2.87676026e+04 * invT; + // species 28: NH2 + species[28] = +1.59263049e+00 + 1.73841799e-03 * T - 3.60905413e-07 * T2 + + 3.73356395e-11 * T3 - 1.15048237e-15 * T4 + + 2.15737320e+04 * invT; + // species 29: H2NO + species[29] = +2.75555914e+00 + 2.58109677e-03 * T - 5.87957957e-07 * T2 + + 6.87631730e-11 * T3 - 3.21286286e-15 * T4 + + 6.51826177e+03 * invT; + // species 30: N2H3 + species[30] = +3.04483566e+00 + 3.65565093e-03 * T - 8.25419330e-07 * T2 + + 9.59332552e-11 * T3 - 4.46215146e-15 * T4 + + 2.53241420e+04 * invT; + } + + // species with midpoint at T=1380 kelvin + if (T < 1380) { + // species 18: N2H2 + species[18] = +1.55589425e+00 + 3.27169540e-03 * T - 2.93982618e-07 * T2 - + 2.89928260e-10 * T3 + 7.94884460e-14 * T4 + + 2.41085081e+04 * invT; + } else { + // species 18: N2H2 + species[18] = +3.14686796e+00 + 2.40806157e-03 * T - 5.42496057e-07 * T2 + + 6.26390245e-11 * T3 - 2.88988376e-15 * T4 + + 2.33444055e+04 * invT; + } +} + +// compute the h/(RT) at the given temperature (Eq 20) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +speciesEnthalpy(amrex::Real* species, const amrex::Real T) +{ + const amrex::Real T2 = T * T; + const amrex::Real T3 = T * T * T; + const amrex::Real T4 = T * T * T * T; + const amrex::Real invT = 1.0 / T; + + // species with midpoint at T=1000 kelvin + if (T < 1000) { + // species 0: AR + species[0] = +2.49988611e+00 + 1.06518980e-07 * T + 2.99106924e-10 * T2 - + 5.78489380e-13 * T3 + 2.60402786e-16 * T4 - + 7.45354481e+02 * invT; + // species 1: N2 + species[1] = +3.53603521e+00 - 7.91354720e-05 * T - 1.42328084e-07 * T2 + + 5.93856475e-10 * T3 - 2.79416412e-13 * T4 - + 1.04749645e+03 * invT; + // species 2: HE + species[2] = +2.49976293e+00 + 5.05067160e-07 * T - 2.74859488e-10 * T2 - + 1.71495826e-13 * T3 + 1.44950371e-16 * T4 - + 7.45340917e+02 * invT; + // species 3: H2 + species[3] = +2.37694204e+00 + 3.86958461e-03 * T - 6.29116910e-06 * T2 + + 4.88792785e-09 * T3 - 1.43419133e-12 * T4 - + 9.21173081e+02 * invT; + // species 4: H + species[4] = +2.49975925e+00 + 3.36912250e-07 * T + 3.72690870e-10 * T2 - + 9.25480315e-13 * T3 + 4.28467644e-16 * T4 + + 2.54737665e+04 * invT; + // species 5: O2 + species[5] = +3.78498258e+00 - 1.51001116e-03 * T + 3.30676390e-06 * T2 - + 2.44460109e-09 * T3 + 6.57755404e-13 * T4 - + 1.06413589e+03 * invT; + // species 6: O + species[6] = +3.15906526e+00 - 1.60754999e-03 * T + 2.16418514e-06 * T2 - + 1.49688779e-09 * T3 + 4.13752234e-13 * T4 + + 2.91298453e+04 * invT; + // species 7: H2O + species[7] = +4.20147551e+00 - 1.02791773e-03 * T + 2.18849069e-06 * T2 - + 1.38226740e-09 * T3 + 3.56565210e-13 * T4 - + 3.02950066e+04 * invT; + // species 8: OH + species[8] = +3.97585165e+00 - 1.14277645e-03 * T + 1.44480961e-06 * T2 - + 8.99816600e-10 * T3 + 2.53413860e-13 * T4 + + 3.39341137e+03 * invT; + // species 9: H2O2 + species[9] = +4.23854160e+00 - 1.24805455e-04 * T + 5.32859670e-06 * T2 - + 5.17299863e-09 * T3 + 1.65953264e-12 * T4 - + 1.76486003e+04 * invT; + // species 10: HO2 + species[10] = +4.26251250e+00 - 2.22821016e-03 * T + 6.83883113e-06 * T2 - + 5.89485027e-09 * T3 + 1.81122851e-12 * T4 + + 2.62442356e+02 * invT; + // species 11: NO + species[11] = +4.21859896e+00 - 2.31994062e-03 * T + 3.68143497e-06 * T2 - + 2.33513877e-09 * T3 + 5.61109748e-13 * T4 + + 9.84509964e+03 * invT; + // species 12: N2O + species[12] = +2.25715020e+00 + 5.65236400e-03 * T - 4.55710633e-06 * T2 + + 2.42049508e-09 * T3 - 5.86143640e-13 * T4 + + 8.74177460e+03 * invT; + // species 13: NO2 + species[13] = +3.94403120e+00 - 7.92714500e-04 * T + 5.55260400e-06 * T2 - + 5.11885650e-09 * T3 + 1.56701128e-12 * T4 + + 2.89661800e+03 * invT; + // species 14: HNO + species[14] = +4.53525574e+00 - 2.84271688e-03 * T + 6.17328467e-06 * T2 - + 4.29703062e-09 * T3 + 1.11163631e-12 * T4 + + 1.16183003e+04 * invT; + // species 15: HNO2 + species[15] = +4.03779347e+00 - 2.23061555e-03 * T + 1.06480272e-05 * T2 - + 9.48398725e-09 * T3 + 2.89141770e-12 * T4 - + 6.53088236e+03 * invT; + // species 16: HONO + species[16] = +3.16416438e+00 + 4.25258887e-03 * T + 1.82853858e-07 * T2 - + 2.06914118e-09 * T3 + 8.79914302e-13 * T4 - + 1.07744086e+04 * invT; + // species 17: HONO2 + species[17] = +1.69329154e+00 + 9.50838510e-03 * T - 2.75058899e-06 * T2 - + 1.51528457e-09 * T3 + 9.30473956e-13 * T4 - + 1.74198909e+04 * invT; + // species 19: H2NN + species[19] = +4.53204001e+00 - 3.66209289e-03 * T + 1.00267904e-05 * T2 - + 7.60001377e-09 * T3 + 2.09401278e-12 * T4 + + 3.49580003e+04 * invT; + // species 20: NH2OH + species[20] = +3.21016092e+00 + 3.09835838e-03 * T + 3.68649827e-06 * T2 - + 4.91670655e-09 * T3 + 1.76503318e-12 * T4 - + 6.58148481e+03 * invT; + // species 21: HNOH + species[21] = +3.95608248e+00 - 1.51305510e-03 * T + 8.56247987e-06 * T2 - + 7.89112800e-09 * T3 + 2.48169148e-12 * T4 + + 1.09199790e+04 * invT; + // species 22: NH3 + species[22] = +4.14027871e+00 - 1.79244571e-03 * T + 6.31586347e-06 * T2 - + 4.97084925e-09 * T3 + 1.43053592e-12 * T4 - + 6.68545158e+03 * invT; + // species 23: N2H4 + species[23] = +3.83472149e+00 - 3.24564777e-04 * T + 1.25616154e-05 * T2 - + 1.25177296e-08 * T3 + 4.06724128e-12 * T4 + + 1.00893925e+04 * invT; + // species 24: N + species[24] = +2.50000000e+00 + 5.61046380e+04 * invT; + // species 25: NO3 + species[25] = +2.17359330e+00 + 5.24513425e-03 * T + 3.68242230e-06 * T2 - + 7.03904667e-09 * T3 + 2.73167920e-12 * T4 + + 7.81290905e+03 * invT; + // species 26: NH + species[26] = +3.49295037e+00 + 1.55897860e-04 * T - 4.96355427e-07 * T2 + + 6.20418505e-10 * T3 - 2.07141832e-13 * T4 + + 4.21059722e+04 * invT; + // species 27: NNH + species[27] = +4.25474632e+00 - 1.72549149e-03 * T + 4.59295663e-06 * T2 - + 3.33159360e-09 * T3 + 8.82046794e-13 * T4 + + 2.87932080e+04 * invT; + // species 28: NH2 + species[28] = +4.19198016e+00 - 1.02301413e-03 * T + 2.22585378e-06 * T2 - + 1.31226809e-09 * T3 + 3.11179896e-13 * T4 + + 2.11863286e+04 * invT; + // species 29: H2NO + species[29] = +3.93201139e+00 - 8.20140825e-05 * T + 4.63871363e-06 * T2 - + 4.06869633e-09 * T3 + 1.20070567e-12 * T4 + + 6.71178975e+03 * invT; + // species 30: N2H3 + species[30] = +3.42125505e+00 + 6.74507950e-04 * T + 7.44863570e-06 * T2 - + 7.49319330e-09 * T3 + 2.41957940e-12 * T4 + + 2.58198956e+04 * invT; + } else { + // species 0: AR + species[0] = +2.49989176e+00 + 7.80674185e-08 * T - 2.58702852e-11 * T2 + + 3.82320212e-15 * T3 - 2.10608986e-19 * T4 - + 7.45328403e+02 * invT; + // species 1: N2 + species[1] = +2.93802970e+00 + 7.09190150e-04 * T - 1.67760348e-07 * T2 + + 2.01888866e-11 * T3 - 9.52128550e-16 * T4 - + 9.17180990e+02 * invT; + // species 2: HE + species[2] = +2.49985609e+00 + 1.09682696e-07 * T - 3.58416950e-11 * T2 + + 5.17995102e-15 * T3 - 2.78717224e-19 * T4 - + 7.45309155e+02 * invT; + // species 3: H2 + species[3] = +2.90207649e+00 + 4.34496291e-04 * T - 5.52881433e-08 * T2 + + 4.77129748e-12 * T3 - 1.86224358e-16 * T4 - + 7.97948726e+02 * invT; + // species 4: H + species[4] = +2.49985211e+00 + 1.17291274e-07 * T - 3.87238803e-11 * T2 + + 5.64270745e-15 * T3 - 3.05984010e-19 * T4 + + 2.54738024e+04 * invT; + // species 5: O2 + species[5] = +3.65980488e+00 + 3.29938686e-04 * T - 4.80527240e-08 * T2 + + 5.36640092e-12 * T3 - 2.73007568e-16 * T4 - + 1.21603048e+03 * invT; + // species 6: O + species[6] = +2.55160087e+00 - 1.91542728e-05 * T + 2.81065826e-10 * T2 + + 1.00316784e-12 * T3 - 8.34953148e-17 * T4 + + 2.92287628e+04 * invT; + // species 7: H2O + species[7] = +2.73117512e+00 + 1.47568497e-03 * T - 2.78453262e-07 * T2 + + 3.15221483e-11 * T3 - 1.68106335e-15 * T4 - + 2.99169082e+04 * invT; + // species 8: OH + species[8] = +2.84581721e+00 + 5.48619090e-04 * T - 9.63737003e-08 * T2 + + 1.02274977e-11 * T3 - 4.62764516e-16 * T4 + + 3.71706610e+03 * invT; + // species 9: H2O2 + species[9] = +4.54017480e+00 + 2.07985485e-03 * T - 4.36255923e-07 * T2 + + 5.02059038e-11 * T3 - 2.31018486e-15 * T4 - + 1.79514029e+04 * invT; + // species 10: HO2 + species[10] = +4.10564010e+00 + 1.02023418e-03 * T - 1.21959187e-07 * T2 + + 4.64932610e-12 * T3 + 9.97636630e-17 * T4 + + 4.32898769e+01 * invT; + // species 11: NO + species[11] = +3.26071234e+00 + 5.95505675e-04 * T - 1.43040882e-07 * T2 + + 1.73620366e-11 * T3 - 8.06591362e-16 * T4 + + 9.92143132e+03 * invT; + // species 12: N2O + species[12] = +4.82307290e+00 + 1.31351255e-03 * T - 3.19502907e-07 * T2 + + 4.00017800e-11 * T3 - 1.95504604e-15 * T4 + + 8.07340470e+03 * invT; + // species 13: NO2 + species[13] = +4.88475400e+00 + 1.08619775e-03 * T - 2.76023030e-07 * T2 + + 3.93687750e-11 * T3 - 2.10217900e-15 * T4 + + 2.31649820e+03 * invT; + // species 14: HNO + species[14] = +3.16598124e+00 + 1.49979446e-03 * T - 1.31458929e-07 * T2 - + 9.63360222e-12 * T3 + 1.41520534e-15 * T4 + + 1.17726311e+04 * invT; + // species 15: HNO2 + species[15] = +4.66358504e+00 + 2.44927175e-03 * T - 5.98980643e-07 * T2 + + 7.36050902e-11 * T3 - 3.56471154e-15 * T4 - + 7.25216334e+03 * invT; + // species 16: HONO + species[16] = +5.79144641e+00 + 1.82315366e-03 * T - 4.30375883e-07 * T2 + + 5.16245582e-11 * T3 - 2.44277358e-15 * T4 - + 1.15974343e+04 * invT; + // species 17: HONO2 + species[17] = +8.03098942e+00 + 2.23479294e-03 * T - 5.74864970e-07 * T2 + + 7.28890383e-11 * T3 - 3.60205404e-15 * T4 - + 1.93138183e+04 * invT; + // species 19: H2NN + species[19] = +3.05903670e+00 + 3.09191173e-03 * T - 7.40570550e-07 * T2 + + 8.96348015e-11 * T3 - 4.29065810e-15 * T4 + + 3.48530149e+04 * invT; + // species 20: NH2OH + species[20] = +3.88112502e+00 + 4.07854224e-03 * T - 9.42051920e-07 * T2 + + 1.09482733e-10 * T3 - 5.05449208e-15 * T4 - + 6.86018419e+03 * invT; + // species 21: HNOH + species[21] = +3.98321933e+00 + 2.44423187e-03 * T - 5.50288790e-07 * T2 + + 6.38428615e-11 * T3 - 2.96617122e-15 * T4 + + 1.05780106e+04 * invT; + // species 22: NH3 + species[22] = +2.36074311e+00 + 3.15925073e-03 * T - 7.63222687e-07 * T2 + + 1.02941853e-10 * T3 - 5.81673574e-15 * T4 - + 6.41596473e+03 * invT; + // species 23: N2H4 + species[23] = +4.93957357e+00 + 4.37508594e-03 * T - 9.97996860e-07 * T2 + + 1.16819604e-10 * T3 - 5.46137198e-15 * T4 + + 9.28265548e+03 * invT; + // species 24: N + species[24] = +2.41594290e+00 + 8.74453250e-05 * T - 3.96745633e-08 * T2 + + 7.55656100e-12 * T3 - 4.07219660e-16 * T4 + + 5.61337750e+04 * invT; + // species 25: NO3 + species[25] = +7.48347702e+00 + 1.28886032e-03 * T - 3.36486103e-07 * T2 + + 4.30785157e-11 * T3 - 2.14308016e-15 * T4 + + 6.12990474e+03 * invT; + // species 26: NH + species[26] = +2.78372644e+00 + 6.64929440e-04 * T - 1.41595191e-07 * T2 + + 1.95873611e-11 * T3 - 1.10090262e-15 * T4 + + 4.23461945e+04 * invT; + // species 27: NNH + species[27] = +3.42744423e+00 + 1.61647617e-03 * T - 3.90987663e-07 * T2 + + 4.76270890e-11 * T3 - 2.28983012e-15 * T4 + + 2.87676026e+04 * invT; + // species 28: NH2 + species[28] = +2.59263049e+00 + 1.73841799e-03 * T - 3.60905413e-07 * T2 + + 3.73356395e-11 * T3 - 1.15048237e-15 * T4 + + 2.15737320e+04 * invT; + // species 29: H2NO + species[29] = +3.75555914e+00 + 2.58109677e-03 * T - 5.87957957e-07 * T2 + + 6.87631730e-11 * T3 - 3.21286286e-15 * T4 + + 6.51826177e+03 * invT; + // species 30: N2H3 + species[30] = +4.04483566e+00 + 3.65565093e-03 * T - 8.25419330e-07 * T2 + + 9.59332552e-11 * T3 - 4.46215146e-15 * T4 + + 2.53241420e+04 * invT; + } + + // species with midpoint at T=1380 kelvin + if (T < 1380) { + // species 18: N2H2 + species[18] = +2.55589425e+00 + 3.27169540e-03 * T - 2.93982618e-07 * T2 - + 2.89928260e-10 * T3 + 7.94884460e-14 * T4 + + 2.41085081e+04 * invT; + } else { + // species 18: N2H2 + species[18] = +4.14686796e+00 + 2.40806157e-03 * T - 5.42496057e-07 * T2 + + 6.26390245e-11 * T3 - 2.88988376e-15 * T4 + + 2.33444055e+04 * invT; + } +} + +// compute the S/R at the given temperature (Eq 21) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +speciesEntropy(amrex::Real* species, const amrex::Real T) +{ + const amrex::Real T2 = T * T; + const amrex::Real T3 = T * T * T; + const amrex::Real T4 = T * T * T * T; + const amrex::Real logT = log(T); + + // species with midpoint at T=1000 kelvin + if (T < 1000) { + // species 0: AR + species[0] = +2.49988611e+00 * logT + 2.13037960e-07 * T + + 4.48660386e-10 * T2 - 7.71319173e-13 * T3 + + 3.25503482e-16 * T4 + 4.38024367e+00; + // species 1: N2 + species[1] = +3.53603521e+00 * logT - 1.58270944e-04 * T - + 2.13492125e-07 * T2 + 7.91808633e-10 * T3 - + 3.49270515e-13 * T4 + 2.94603724e+00; + // species 2: HE + species[2] = +2.49976293e+00 * logT + 1.01013432e-06 * T - + 4.12289233e-10 * T2 - 2.28661102e-13 * T3 + + 1.81187964e-16 * T4 + 9.29800315e-01; + // species 3: H2 + species[3] = +2.37694204e+00 * logT + 7.73916922e-03 * T - + 9.43675365e-06 * T2 + 6.51723713e-09 * T3 - + 1.79273916e-12 * T4 + 5.47184736e-01; + // species 4: H + species[4] = +2.49975925e+00 * logT + 6.73824499e-07 * T + + 5.59036305e-10 * T2 - 1.23397375e-12 * T3 + + 5.35584555e-16 * T4 - 4.45574009e-01; + // species 5: O2 + species[5] = +3.78498258e+00 * logT - 3.02002233e-03 * T + + 4.96014586e-06 * T2 - 3.25946811e-09 * T3 + + 8.22194255e-13 * T4 + 3.64780709e+00; + // species 6: O + species[6] = +3.15906526e+00 * logT - 3.21509999e-03 * T + + 3.24627771e-06 * T2 - 1.99585038e-09 * T3 + + 5.17190293e-13 * T4 + 2.09078344e+00; + // species 7: H2O + species[7] = +4.20147551e+00 * logT - 2.05583546e-03 * T + + 3.28273603e-06 * T2 - 1.84302320e-09 * T3 + + 4.45706512e-13 * T4 - 8.60610906e-01; + // species 8: OH + species[8] = +3.97585165e+00 * logT - 2.28555291e-03 * T + + 2.16721441e-06 * T2 - 1.19975547e-09 * T3 + + 3.16767325e-13 * T4 - 3.55397262e-02; + // species 9: H2O2 + species[9] = +4.23854160e+00 * logT - 2.49610911e-04 * T + + 7.99289505e-06 * T2 - 6.89733150e-09 * T3 + + 2.07441580e-12 * T4 + 3.58850097e+00; + // species 10: HO2 + species[10] = +4.26251250e+00 * logT - 4.45642032e-03 * T + + 1.02582467e-05 * T2 - 7.85980037e-09 * T3 + + 2.26403564e-12 * T4 + 3.88223684e+00; + // species 11: NO + species[11] = +4.21859896e+00 * logT - 4.63988124e-03 * T + + 5.52215245e-06 * T2 - 3.11351836e-09 * T3 + + 7.01387185e-13 * T4 + 2.28061001e+00; + // species 12: N2O + species[12] = +2.25715020e+00 * logT + 1.13047280e-02 * T - + 6.83565950e-06 * T2 + 3.22732677e-09 * T3 - + 7.32679550e-13 * T4 + 1.07579920e+01; + // species 13: NO2 + species[13] = +3.94403120e+00 * logT - 1.58542900e-03 * T + + 8.32890600e-06 * T2 - 6.82514200e-09 * T3 + + 1.95876410e-12 * T4 + 6.31199190e+00; + // species 14: HNO + species[14] = +4.53525574e+00 * logT - 5.68543377e-03 * T + + 9.25992700e-06 * T2 - 5.72937417e-09 * T3 + + 1.38954539e-12 * T4 + 1.74315886e+00; + // species 15: HNO2 + species[15] = +4.03779347e+00 * logT - 4.46123109e-03 * T + + 1.59720407e-05 * T2 - 1.26453163e-08 * T3 + + 3.61427213e-12 * T4 + 5.90620097e+00; + // species 16: HONO + species[16] = +3.16416438e+00 * logT + 8.50517773e-03 * T + + 2.74280786e-07 * T2 - 2.75885491e-09 * T3 + + 1.09989288e-12 * T4 + 1.00231941e+01; + // species 17: HONO2 + species[17] = +1.69329154e+00 * logT + 1.90167702e-02 * T - + 4.12588348e-06 * T2 - 2.02037942e-09 * T3 + + 1.16309245e-12 * T4 + 1.71839838e+01; + // species 19: H2NN + species[19] = +4.53204001e+00 * logT - 7.32418578e-03 * T + + 1.50401856e-05 * T2 - 1.01333517e-08 * T3 + + 2.61751598e-12 * T4 + 1.51074195e+00; + // species 20: NH2OH + species[20] = +3.21016092e+00 * logT + 6.19671676e-03 * T + + 5.52974740e-06 * T2 - 6.55560873e-09 * T3 + + 2.20629147e-12 * T4 + 7.93293571e+00; + // species 21: HNOH + species[21] = +3.95608248e+00 * logT - 3.02611020e-03 * T + + 1.28437198e-05 * T2 - 1.05215040e-08 * T3 + + 3.10211435e-12 * T4 + 5.55950983e+00; + // species 22: NH3 + species[22] = +4.14027871e+00 * logT - 3.58489142e-03 * T + + 9.47379520e-06 * T2 - 6.62779900e-09 * T3 + + 1.78816990e-12 * T4 - 1.66754883e-02; + // species 23: N2H4 + species[23] = +3.83472149e+00 * logT - 6.49129555e-04 * T + + 1.88424232e-05 * T2 - 1.66903061e-08 * T3 + + 5.08405160e-12 * T4 + 5.75272030e+00; + // species 24: N + species[24] = +2.50000000e+00 * logT + 4.19390880e+00; + // species 25: NO3 + species[25] = +2.17359330e+00 * logT + 1.04902685e-02 * T + + 5.52363345e-06 * T2 - 9.38539557e-09 * T3 + + 3.41459900e-12 * T4 + 1.46022090e+01; + // species 26: NH + species[26] = +3.49295037e+00 * logT + 3.11795720e-04 * T - + 7.44533140e-07 * T2 + 8.27224673e-10 * T3 - + 2.58927290e-13 * T4 + 1.84834973e+00; + // species 27: NNH + species[27] = +4.25474632e+00 * logT - 3.45098298e-03 * T + + 6.88943495e-06 * T2 - 4.44212480e-09 * T3 + + 1.10255849e-12 * T4 + 3.28551762e+00; + // species 28: NH2 + species[28] = +4.19198016e+00 * logT - 2.04602827e-03 * T + + 3.33878067e-06 * T2 - 1.74969078e-09 * T3 + + 3.88974870e-13 * T4 - 9.04785244e-02; + // species 29: H2NO + species[29] = +3.93201139e+00 * logT - 1.64028165e-04 * T + + 6.95807045e-06 * T2 - 5.42492843e-09 * T3 + + 1.50088209e-12 * T4 + 4.58837038e+00; + // species 30: N2H3 + species[30] = +3.42125505e+00 * logT + 1.34901590e-03 * T + + 1.11729535e-05 * T2 - 9.99092440e-09 * T3 + + 3.02447425e-12 * T4 + 7.83176309e+00; + } else { + // species 0: AR + species[0] = +2.49989176e+00 * logT + 1.56134837e-07 * T - + 3.88054279e-11 * T2 + 5.09760283e-15 * T3 - + 2.63261232e-19 * T4 + 4.38029835e+00; + // species 1: N2 + species[1] = +2.93802970e+00 * logT + 1.41838030e-03 * T - + 2.51640522e-07 * T2 + 2.69185155e-11 * T3 - + 1.19016069e-15 * T4 + 5.95521985e+00; + // species 2: HE + species[2] = +2.49985609e+00 * logT + 2.19365392e-07 * T - + 5.37625425e-11 * T2 + 6.90660137e-15 * T3 - + 3.48396530e-19 * T4 + 9.29535014e-01; + // species 3: H2 + species[3] = +2.90207649e+00 * logT + 8.68992581e-04 * T - + 8.29322150e-08 * T2 + 6.36172997e-12 * T3 - + 2.32780447e-16 * T4 - 8.45591320e-01; + // species 4: H + species[4] = +2.49985211e+00 * logT + 2.34582548e-07 * T - + 5.80858205e-11 * T2 + 7.52360993e-15 * T3 - + 3.82480012e-19 * T4 - 4.45864645e-01; + // species 5: O2 + species[5] = +3.65980488e+00 * logT + 6.59877372e-04 * T - + 7.20790860e-08 * T2 + 7.15520123e-12 * T3 - + 3.41259460e-16 * T4 + 3.42074148e+00; + // species 6: O + species[6] = +2.55160087e+00 * logT - 3.83085457e-05 * T + + 4.21598739e-10 * T2 + 1.33755712e-12 * T3 - + 1.04369143e-16 * T4 + 4.87617014e+00; + // species 7: H2O + species[7] = +2.73117512e+00 * logT + 2.95136995e-03 * T - + 4.17679892e-07 * T2 + 4.20295310e-11 * T3 - + 2.10132919e-15 * T4 + 6.55183000e+00; + // species 8: OH + species[8] = +2.84581721e+00 * logT + 1.09723818e-03 * T - + 1.44560551e-07 * T2 + 1.36366637e-11 * T3 - + 5.78455645e-16 * T4 + 5.80339915e+00; + // species 9: H2O2 + species[9] = +4.54017480e+00 * logT + 4.15970971e-03 * T - + 6.54383885e-07 * T2 + 6.69412050e-11 * T3 - + 2.88773107e-15 * T4 + 8.55881745e-01; + // species 10: HO2 + species[10] = +4.10564010e+00 * logT + 2.04046836e-03 * T - + 1.82938781e-07 * T2 + 6.19910147e-12 * T3 + + 1.24704579e-16 * T4 + 3.30808126e+00; + // species 11: NO + species[11] = +3.26071234e+00 * logT + 1.19101135e-03 * T - + 2.14561323e-07 * T2 + 2.31493821e-11 * T3 - + 1.00823920e-15 * T4 + 6.36900518e+00; + // species 12: N2O + species[12] = +4.82307290e+00 * logT + 2.62702510e-03 * T - + 4.79254360e-07 * T2 + 5.33357067e-11 * T3 - + 2.44380755e-15 * T4 - 2.20172080e+00; + // species 13: NO2 + species[13] = +4.88475400e+00 * logT + 2.17239550e-03 * T - + 4.14034545e-07 * T2 + 5.24917000e-11 * T3 - + 2.62772375e-15 * T4 - 1.17416950e-01; + // species 14: HNO + species[14] = +3.16598124e+00 * logT + 2.99958892e-03 * T - + 1.97188393e-07 * T2 - 1.28448030e-11 * T3 + + 1.76900667e-15 * T4 + 7.64511172e+00; + // species 15: HNO2 + species[15] = +4.66358504e+00 * logT + 4.89854351e-03 * T - + 8.98470965e-07 * T2 + 9.81401203e-11 * T3 - + 4.45588943e-15 * T4 - 3.06053640e-02; + // species 16: HONO + species[16] = +5.79144641e+00 * logT + 3.64630732e-03 * T - + 6.45563825e-07 * T2 + 6.88327443e-11 * T3 - + 3.05346698e-15 * T4 - 4.07145349e+00; + // species 17: HONO2 + species[17] = +8.03098942e+00 * logT + 4.46958589e-03 * T - + 8.62297455e-07 * T2 + 9.71853843e-11 * T3 - + 4.50256755e-15 * T4 - 1.62616537e+01; + // species 19: H2NN + species[19] = +3.05903670e+00 * logT + 6.18382347e-03 * T - + 1.11085582e-06 * T2 + 1.19513069e-10 * T3 - + 5.36332263e-15 * T4 + 6.69893515e+00; + // species 20: NH2OH + species[20] = +3.88112502e+00 * logT + 8.15708448e-03 * T - + 1.41307788e-06 * T2 + 1.45976978e-10 * T3 - + 6.31811510e-15 * T4 + 3.79156136e+00; + // species 21: HNOH + species[21] = +3.98321933e+00 * logT + 4.88846374e-03 * T - + 8.25433185e-07 * T2 + 8.51238153e-11 * T3 - + 3.70771402e-15 * T4 + 3.62582838e+00; + // species 22: NH3 + species[22] = +2.36074311e+00 * logT + 6.31850146e-03 * T - + 1.14483403e-06 * T2 + 1.37255804e-10 * T3 - + 7.27091967e-15 * T4 + 8.02154329e+00; + // species 23: N2H4 + species[23] = +4.93957357e+00 * logT + 8.75017187e-03 * T - + 1.49699529e-06 * T2 + 1.55759473e-10 * T3 - + 6.82671497e-15 * T4 - 2.69439772e+00; + // species 24: N + species[24] = +2.41594290e+00 * logT + 1.74890650e-04 * T - + 5.95118450e-08 * T2 + 1.00754147e-11 * T3 - + 5.09024575e-16 * T4 + 4.64960950e+00; + // species 25: NO3 + species[25] = +7.48347702e+00 * logT + 2.57772064e-03 * T - + 5.04729155e-07 * T2 + 5.74380210e-11 * T3 - + 2.67885020e-15 * T4 - 1.41618136e+01; + // species 26: NH + species[26] = +2.78372644e+00 * logT + 1.32985888e-03 * T - + 2.12392787e-07 * T2 + 2.61164814e-11 * T3 - + 1.37612828e-15 * T4 + 5.74084863e+00; + // species 27: NNH + species[27] = +3.42744423e+00 * logT + 3.23295234e-03 * T - + 5.86481495e-07 * T2 + 6.35027853e-11 * T3 - + 2.86228765e-15 * T4 + 6.39209233e+00; + // species 28: NH2 + species[28] = +2.59263049e+00 * logT + 3.47683597e-03 * T - + 5.41358120e-07 * T2 + 4.97808527e-11 * T3 - + 1.43810297e-15 * T4 + 7.90565351e+00; + // species 29: H2NO + species[29] = +3.75555914e+00 * logT + 5.16219354e-03 * T - + 8.81936935e-07 * T2 + 9.16842307e-11 * T3 - + 4.01607857e-15 * T4 + 4.30933053e+00; + // species 30: N2H3 + species[30] = +4.04483566e+00 * logT + 7.31130186e-03 * T - + 1.23812900e-06 * T2 + 1.27911007e-10 * T3 - + 5.57768933e-15 * T4 + 2.88423392e+00; + } + + // species with midpoint at T=1380 kelvin + if (T < 1380) { + // species 18: N2H2 + species[18] = +2.55589425e+00 * logT + 6.54339081e-03 * T - + 4.40973928e-07 * T2 - 3.86571013e-10 * T3 + + 9.93605575e-14 * T4 + 9.80504705e+00; + } else { + // species 18: N2H2 + species[18] = +4.14686796e+00 * logT + 4.81612315e-03 * T - + 8.13744085e-07 * T2 + 8.35186993e-11 * T3 - + 3.61235470e-15 * T4 + 5.34122740e-01; + } +} + +// compute d(Cp/R)/dT and d(Cv/R)/dT at the given temperature +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +dcvpRdT(amrex::Real* species, const amrex::Real T) +{ + const amrex::Real T2 = T * T; + const amrex::Real T3 = T * T * T; + + // species with midpoint at T=1000 kelvin + if (T < 1000) { + // species 0: AR + species[0] = +2.13037960e-07 + 1.79464154e-09 * T - 6.94187256e-12 * T2 + + 5.20805572e-15 * T3; + // species 1: N2 + species[1] = -1.58270944e-04 - 8.53968502e-07 * T + 7.12627770e-09 * T2 - + 5.58832824e-12 * T3; + // species 2: HE + species[2] = +1.01013432e-06 - 1.64915693e-09 * T - 2.05794992e-12 * T2 + + 2.89900742e-15 * T3; + // species 3: H2 + species[3] = +7.73916922e-03 - 3.77470146e-05 * T + 5.86551342e-08 * T2 - + 2.86838265e-11 * T3; + // species 4: H + species[4] = +6.73824499e-07 + 2.23614522e-09 * T - 1.11057638e-11 * T2 + + 8.56935288e-15 * T3; + // species 5: O2 + species[5] = -3.02002233e-03 + 1.98405834e-05 * T - 2.93352130e-08 * T2 + + 1.31551081e-11 * T3; + // species 6: O + species[6] = -3.21509999e-03 + 1.29851109e-05 * T - 1.79626534e-08 * T2 + + 8.27504468e-12 * T3; + // species 7: H2O + species[7] = -2.05583546e-03 + 1.31309441e-05 * T - 1.65872088e-08 * T2 + + 7.13130420e-12 * T3; + // species 8: OH + species[8] = -2.28555291e-03 + 8.66885764e-06 * T - 1.07977992e-08 * T2 + + 5.06827720e-12 * T3; + // species 9: H2O2 + species[9] = -2.49610911e-04 + 3.19715802e-05 * T - 6.20759835e-08 * T2 + + 3.31906528e-11 * T3; + // species 10: HO2 + species[10] = -4.45642032e-03 + 4.10329868e-05 * T - 7.07382033e-08 * T2 + + 3.62245703e-11 * T3; + // species 11: NO + species[11] = -4.63988124e-03 + 2.20886098e-05 * T - 2.80216652e-08 * T2 + + 1.12221950e-11 * T3; + // species 12: N2O + species[12] = +1.13047280e-02 - 2.73426380e-05 * T + 2.90459409e-08 * T2 - + 1.17228728e-11 * T3; + // species 13: NO2 + species[13] = -1.58542900e-03 + 3.33156240e-05 * T - 6.14262780e-08 * T2 + + 3.13402256e-11 * T3; + // species 14: HNO + species[14] = -5.68543377e-03 + 3.70397080e-05 * T - 5.15643675e-08 * T2 + + 2.22327263e-11 * T3; + // species 15: HNO2 + species[15] = -4.46123109e-03 + 6.38881630e-05 * T - 1.13807847e-07 * T2 + + 5.78283540e-11 * T3; + // species 16: HONO + species[16] = +8.50517773e-03 + 1.09712315e-06 * T - 2.48296942e-08 * T2 + + 1.75982860e-11 * T3; + // species 17: HONO2 + species[17] = +1.90167702e-02 - 1.65035339e-05 * T - 1.81834148e-08 * T2 + + 1.86094791e-11 * T3; + // species 19: H2NN + species[19] = -7.32418578e-03 + 6.01607426e-05 * T - 9.12001653e-08 * T2 + + 4.18802556e-11 * T3; + // species 20: NH2OH + species[20] = +6.19671676e-03 + 2.21189896e-05 * T - 5.90004786e-08 * T2 + + 3.53006636e-11 * T3; + // species 21: HNOH + species[21] = -3.02611020e-03 + 5.13748792e-05 * T - 9.46935360e-08 * T2 + + 4.96338296e-11 * T3; + // species 22: NH3 + species[22] = -3.58489142e-03 + 3.78951808e-05 * T - 5.96501910e-08 * T2 + + 2.86107184e-11 * T3; + // species 23: N2H4 + species[23] = -6.49129555e-04 + 7.53696926e-05 * T - 1.50212755e-07 * T2 + + 8.13448256e-11 * T3; + // species 24: N + species[24] = 0.0; + // species 25: NO3 + species[25] = +1.04902685e-02 + 2.20945338e-05 * T - 8.44685601e-08 * T2 + + 5.46335840e-11 * T3; + // species 26: NH + species[26] = +3.11795720e-04 - 2.97813256e-06 * T + 7.44502206e-09 * T2 - + 4.14283664e-12 * T3; + // species 27: NNH + species[27] = -3.45098298e-03 + 2.75577398e-05 * T - 3.99791232e-08 * T2 + + 1.76409359e-11 * T3; + // species 28: NH2 + species[28] = -2.04602827e-03 + 1.33551227e-05 * T - 1.57472170e-08 * T2 + + 6.22359792e-12 * T3; + // species 29: H2NO + species[29] = -1.64028165e-04 + 2.78322818e-05 * T - 4.88243559e-08 * T2 + + 2.40141134e-11 * T3; + // species 30: N2H3 + species[30] = +1.34901590e-03 + 4.46918142e-05 * T - 8.99183196e-08 * T2 + + 4.83915880e-11 * T3; + } else { + // species 0: AR + species[0] = +1.56134837e-07 - 1.55221711e-10 * T + 4.58784255e-14 * T2 - + 4.21217972e-18 * T3; + // species 1: N2 + species[1] = +1.41838030e-03 - 1.00656209e-06 * T + 2.42266639e-10 * T2 - + 1.90425710e-14 * T3; + // species 2: HE + species[2] = +2.19365392e-07 - 2.15050170e-10 * T + 6.21594123e-14 * T2 - + 5.57434448e-18 * T3; + // species 3: H2 + species[3] = +8.68992581e-04 - 3.31728860e-07 * T + 5.72555697e-11 * T2 - + 3.72448716e-15 * T3; + // species 4: H + species[4] = +2.34582548e-07 - 2.32343282e-10 * T + 6.77124894e-14 * T2 - + 6.11968020e-18 * T3; + // species 5: O2 + species[5] = +6.59877372e-04 - 2.88316344e-07 * T + 6.43968111e-11 * T2 - + 5.46015136e-15 * T3; + // species 6: O + species[6] = -3.83085457e-05 + 1.68639496e-09 * T + 1.20380141e-11 * T2 - + 1.66990630e-15 * T3; + // species 7: H2O + species[7] = +2.95136995e-03 - 1.67071957e-06 * T + 3.78265779e-10 * T2 - + 3.36212670e-14 * T3; + // species 8: OH + species[8] = +1.09723818e-03 - 5.78242202e-07 * T + 1.22729973e-10 * T2 - + 9.25529032e-15 * T3; + // species 9: H2O2 + species[9] = +4.15970971e-03 - 2.61753554e-06 * T + 6.02470845e-10 * T2 - + 4.62036972e-14 * T3; + // species 10: HO2 + species[10] = +2.04046836e-03 - 7.31755124e-07 * T + 5.57919132e-11 * T2 + + 1.99527326e-15 * T3; + // species 11: NO + species[11] = +1.19101135e-03 - 8.58245292e-07 * T + 2.08344439e-10 * T2 - + 1.61318272e-14 * T3; + // species 12: N2O + species[12] = +2.62702510e-03 - 1.91701744e-06 * T + 4.80021360e-10 * T2 - + 3.91009208e-14 * T3; + // species 13: NO2 + species[13] = +2.17239550e-03 - 1.65613818e-06 * T + 4.72425300e-10 * T2 - + 4.20435800e-14 * T3; + // species 14: HNO + species[14] = +2.99958892e-03 - 7.88753572e-07 * T - 1.15603227e-10 * T2 + + 2.83041067e-14 * T3; + // species 15: HNO2 + species[15] = +4.89854351e-03 - 3.59388386e-06 * T + 8.83261083e-10 * T2 - + 7.12942308e-14 * T3; + // species 16: HONO + species[16] = +3.64630732e-03 - 2.58225530e-06 * T + 6.19494699e-10 * T2 - + 4.88554716e-14 * T3; + // species 17: HONO2 + species[17] = +4.46958589e-03 - 3.44918982e-06 * T + 8.74668459e-10 * T2 - + 7.20410808e-14 * T3; + // species 19: H2NN + species[19] = +6.18382347e-03 - 4.44342330e-06 * T + 1.07561762e-09 * T2 - + 8.58131620e-14 * T3; + // species 20: NH2OH + species[20] = +8.15708448e-03 - 5.65231152e-06 * T + 1.31379280e-09 * T2 - + 1.01089842e-13 * T3; + // species 21: HNOH + species[21] = +4.88846374e-03 - 3.30173274e-06 * T + 7.66114338e-10 * T2 - + 5.93234244e-14 * T3; + // species 22: NH3 + species[22] = +6.31850146e-03 - 4.57933612e-06 * T + 1.23530223e-09 * T2 - + 1.16334715e-13 * T3; + // species 23: N2H4 + species[23] = +8.75017187e-03 - 5.98798116e-06 * T + 1.40183525e-09 * T2 - + 1.09227440e-13 * T3; + // species 24: N + species[24] = +1.74890650e-04 - 2.38047380e-07 * T + 9.06787320e-11 * T2 - + 8.14439320e-15 * T3; + // species 25: NO3 + species[25] = +2.57772064e-03 - 2.01891662e-06 * T + 5.16942189e-10 * T2 - + 4.28616032e-14 * T3; + // species 26: NH + species[26] = +1.32985888e-03 - 8.49571146e-07 * T + 2.35048333e-10 * T2 - + 2.20180524e-14 * T3; + // species 27: NNH + species[27] = +3.23295234e-03 - 2.34592598e-06 * T + 5.71525068e-10 * T2 - + 4.57966024e-14 * T3; + // species 28: NH2 + species[28] = +3.47683597e-03 - 2.16543248e-06 * T + 4.48027674e-10 * T2 - + 2.30096475e-14 * T3; + // species 29: H2NO + species[29] = +5.16219354e-03 - 3.52774774e-06 * T + 8.25158076e-10 * T2 - + 6.42572572e-14 * T3; + // species 30: N2H3 + species[30] = +7.31130186e-03 - 4.95251598e-06 * T + 1.15119906e-09 * T2 - + 8.92430292e-14 * T3; + } + + // species with midpoint at T=1380 kelvin + if (T < 1380) { + // species 18: N2H2 + species[18] = +6.54339081e-03 - 1.76389571e-06 * T - 3.47913912e-09 * T2 + + 1.58976892e-12 * T3; + } else { + // species 18: N2H2 + species[18] = +4.81612315e-03 - 3.25497634e-06 * T + 7.51668294e-10 * T2 - + 5.77976752e-14 * T3; + } +} + +// Returns the mean specific heat at CP (Eq. 33) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKCPBL(const amrex::Real T, const amrex::Real x[], amrex::Real& cpbl) +{ + amrex::Real result = 0; + amrex::Real cpor[31]; // temporary storage + cp_R(cpor, T); + + // perform dot product + for (int id = 0; id < 31; ++id) { + result += x[id] * cpor[id]; + } + + cpbl = result * 8.31446261815324e+07; +} + +// Returns the mean specific heat at CP (Eq. 34) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKCPBS(const amrex::Real T, const amrex::Real y[], amrex::Real& cpbs) +{ + amrex::Real result = 0.0; + + // compute Cp/R at the given temperature + const amrex::Real T2 = T * T; + const amrex::Real T3 = T * T * T; + const amrex::Real T4 = T * T * T * T; + + // species with midpoint at T=1000 kelvin + if (T < 1000) { + // species 0: AR + result += y[0] * + (+2.49988611e+00 + 2.13037960e-07 * T + 8.97320772e-10 * T2 - + 2.31395752e-12 * T3 + 1.30201393e-15 * T4) * + 0.0250312891113892; + // species 1: N2 + result += y[1] * + (+3.53603521e+00 - 1.58270944e-04 * T - 4.26984251e-07 * T2 + + 2.37542590e-09 * T3 - 1.39708206e-12 * T4) * + 0.0356964374955379; + // species 2: HE + result += y[2] * + (+2.49976293e+00 + 1.01013432e-06 * T - 8.24578465e-10 * T2 - + 6.85983306e-13 * T3 + 7.24751856e-16 * T4) * + 0.2498374807187924; + // species 3: H2 + result += y[3] * + (+2.37694204e+00 + 7.73916922e-03 * T - 1.88735073e-05 * T2 + + 1.95517114e-08 * T3 - 7.17095663e-12 * T4) * + 0.4960317460317460; + // species 4: H + result += y[4] * + (+2.49975925e+00 + 6.73824499e-07 * T + 1.11807261e-09 * T2 - + 3.70192126e-12 * T3 + 2.14233822e-15 * T4) * + 0.9920634920634921; + // species 5: O2 + result += y[5] * + (+3.78498258e+00 - 3.02002233e-03 * T + 9.92029171e-06 * T2 - + 9.77840434e-09 * T3 + 3.28877702e-12 * T4) * + 0.0312519532470779; + // species 6: O + result += y[6] * + (+3.15906526e+00 - 3.21509999e-03 * T + 6.49255543e-06 * T2 - + 5.98755115e-09 * T3 + 2.06876117e-12 * T4) * + 0.0625039064941559; + // species 7: H2O + result += y[7] * + (+4.20147551e+00 - 2.05583546e-03 * T + 6.56547207e-06 * T2 - + 5.52906960e-09 * T3 + 1.78282605e-12 * T4) * + 0.0555092978073827; + // species 8: OH + result += y[8] * + (+3.97585165e+00 - 2.28555291e-03 * T + 4.33442882e-06 * T2 - + 3.59926640e-09 * T3 + 1.26706930e-12 * T4) * + 0.0587993179279120; + // species 9: H2O2 + result += y[9] * + (+4.23854160e+00 - 2.49610911e-04 * T + 1.59857901e-05 * T2 - + 2.06919945e-08 * T3 + 8.29766320e-12 * T4) * + 0.0293996589639560; + // species 10: HO2 + result += y[10] * + (+4.26251250e+00 - 4.45642032e-03 * T + 2.05164934e-05 * T2 - + 2.35794011e-08 * T3 + 9.05614257e-12 * T4) * + 0.0302975216627280; + // species 11: NO + result += y[11] * + (+4.21859896e+00 - 4.63988124e-03 * T + 1.10443049e-05 * T2 - + 9.34055507e-09 * T3 + 2.80554874e-12 * T4) * + 0.0333266679997334; + // species 12: N2O + result += y[12] * + (+2.25715020e+00 + 1.13047280e-02 * T - 1.36713190e-05 * T2 + + 9.68198030e-09 * T3 - 2.93071820e-12 * T4) * + 0.0227205598345943; + // species 13: NO2 + result += y[13] * + (+3.94403120e+00 - 1.58542900e-03 * T + 1.66578120e-05 * T2 - + 2.04754260e-08 * T3 + 7.83505640e-12 * T4) * + 0.0217367677426367; + // species 14: HNO + result += y[14] * + (+4.53525574e+00 - 5.68543377e-03 * T + 1.85198540e-05 * T2 - + 1.71881225e-08 * T3 + 5.55818157e-12 * T4) * + 0.0322435029341588; + // species 15: HNO2 + result += y[15] * + (+4.03779347e+00 - 4.46123109e-03 * T + 3.19440815e-05 * T2 - + 3.79359490e-08 * T3 + 1.44570885e-11 * T4) * + 0.0212707123561568; + // species 16: HONO + result += y[16] * + (+3.16416438e+00 + 8.50517773e-03 * T + 5.48561573e-07 * T2 - + 8.27656474e-09 * T3 + 4.39957151e-12 * T4) * + 0.0212707123561568; + // species 17: HONO2 + result += y[17] * + (+1.69329154e+00 + 1.90167702e-02 * T - 8.25176697e-06 * T2 - + 6.06113827e-09 * T3 + 4.65236978e-12 * T4) * + 0.0158699930172031; + // species 19: H2NN + result += y[19] * + (+4.53204001e+00 - 7.32418578e-03 * T + 3.00803713e-05 * T2 - + 3.04000551e-08 * T3 + 1.04700639e-11 * T4) * + 0.0333000333000333; + // species 20: NH2OH + result += y[20] * + (+3.21016092e+00 + 6.19671676e-03 * T + 1.10594948e-05 * T2 - + 1.96668262e-08 * T3 + 8.82516590e-12 * T4) * + 0.0302755071147442; + // species 21: HNOH + result += y[21] * + (+3.95608248e+00 - 3.02611020e-03 * T + 2.56874396e-05 * T2 - + 3.15645120e-08 * T3 + 1.24084574e-11 * T4) * + 0.0312285303853601; + // species 22: NH3 + result += y[22] * + (+4.14027871e+00 - 3.58489142e-03 * T + 1.89475904e-05 * T2 - + 1.98833970e-08 * T3 + 7.15267961e-12 * T4) * + 0.0587164582232400; + // species 23: N2H4 + result += y[23] * + (+3.83472149e+00 - 6.49129555e-04 * T + 3.76848463e-05 * T2 - + 5.00709182e-08 * T3 + 2.03362064e-11 * T4) * + 0.0312051426075017; + // species 24: N + result += y[24] * (+2.50000000e+00) * 0.0713928749910759; + // species 25: NO3 + result += y[25] * + (+2.17359330e+00 + 1.04902685e-02 * T + 1.10472669e-05 * T2 - + 2.81561867e-08 * T3 + 1.36583960e-11 * T4) * + 0.0161279917424682; + // species 26: NH + result += y[26] * + (+3.49295037e+00 + 3.11795720e-04 * T - 1.48906628e-06 * T2 + + 2.48167402e-09 * T3 - 1.03570916e-12 * T4) * + 0.0666000666000666; + // species 27: NNH + result += y[27] * + (+4.25474632e+00 - 3.45098298e-03 * T + 1.37788699e-05 * T2 - + 1.33263744e-08 * T3 + 4.41023397e-12 * T4) * + 0.0344566191165323; + // species 28: NH2 + result += y[28] * + (+4.19198016e+00 - 2.04602827e-03 * T + 6.67756134e-06 * T2 - + 5.24907235e-09 * T3 + 1.55589948e-12 * T4) * + 0.0624102852150034; + // species 29: H2NO + result += y[29] * + (+3.93201139e+00 - 1.64028165e-04 * T + 1.39161409e-05 * T2 - + 1.62747853e-08 * T3 + 6.00352834e-12 * T4) * + 0.0312285303853601; + // species 30: N2H3 + result += y[30] * + (+3.42125505e+00 + 1.34901590e-03 * T + 2.23459071e-05 * T2 - + 2.99727732e-08 * T3 + 1.20978970e-11 * T4) * + 0.0322185707842000; + } else { + // species 0: AR + result += y[0] * + (+2.49989176e+00 + 1.56134837e-07 * T - 7.76108557e-11 * T2 + + 1.52928085e-14 * T3 - 1.05304493e-18 * T4) * + 0.0250312891113892; + // species 1: N2 + result += y[1] * + (+2.93802970e+00 + 1.41838030e-03 * T - 5.03281045e-07 * T2 + + 8.07555464e-11 * T3 - 4.76064275e-15 * T4) * + 0.0356964374955379; + // species 2: HE + result += y[2] * + (+2.49985609e+00 + 2.19365392e-07 * T - 1.07525085e-10 * T2 + + 2.07198041e-14 * T3 - 1.39358612e-18 * T4) * + 0.2498374807187924; + // species 3: H2 + result += y[3] * + (+2.90207649e+00 + 8.68992581e-04 * T - 1.65864430e-07 * T2 + + 1.90851899e-11 * T3 - 9.31121789e-16 * T4) * + 0.4960317460317460; + // species 4: H + result += y[4] * + (+2.49985211e+00 + 2.34582548e-07 * T - 1.16171641e-10 * T2 + + 2.25708298e-14 * T3 - 1.52992005e-18 * T4) * + 0.9920634920634921; + // species 5: O2 + result += y[5] * + (+3.65980488e+00 + 6.59877372e-04 * T - 1.44158172e-07 * T2 + + 2.14656037e-11 * T3 - 1.36503784e-15 * T4) * + 0.0312519532470779; + // species 6: O + result += y[6] * + (+2.55160087e+00 - 3.83085457e-05 * T + 8.43197478e-10 * T2 + + 4.01267136e-12 * T3 - 4.17476574e-16 * T4) * + 0.0625039064941559; + // species 7: H2O + result += y[7] * + (+2.73117512e+00 + 2.95136995e-03 * T - 8.35359785e-07 * T2 + + 1.26088593e-10 * T3 - 8.40531676e-15 * T4) * + 0.0555092978073827; + // species 8: OH + result += y[8] * + (+2.84581721e+00 + 1.09723818e-03 * T - 2.89121101e-07 * T2 + + 4.09099910e-11 * T3 - 2.31382258e-15 * T4) * + 0.0587993179279120; + // species 9: H2O2 + result += y[9] * + (+4.54017480e+00 + 4.15970971e-03 * T - 1.30876777e-06 * T2 + + 2.00823615e-10 * T3 - 1.15509243e-14 * T4) * + 0.0293996589639560; + // species 10: HO2 + result += y[10] * + (+4.10564010e+00 + 2.04046836e-03 * T - 3.65877562e-07 * T2 + + 1.85973044e-11 * T3 + 4.98818315e-16 * T4) * + 0.0302975216627280; + // species 11: NO + result += y[11] * + (+3.26071234e+00 + 1.19101135e-03 * T - 4.29122646e-07 * T2 + + 6.94481463e-11 * T3 - 4.03295681e-15 * T4) * + 0.0333266679997334; + // species 12: N2O + result += y[12] * + (+4.82307290e+00 + 2.62702510e-03 * T - 9.58508720e-07 * T2 + + 1.60007120e-10 * T3 - 9.77523020e-15 * T4) * + 0.0227205598345943; + // species 13: NO2 + result += y[13] * + (+4.88475400e+00 + 2.17239550e-03 * T - 8.28069090e-07 * T2 + + 1.57475100e-10 * T3 - 1.05108950e-14 * T4) * + 0.0217367677426367; + // species 14: HNO + result += y[14] * + (+3.16598124e+00 + 2.99958892e-03 * T - 3.94376786e-07 * T2 - + 3.85344089e-11 * T3 + 7.07602668e-15 * T4) * + 0.0322435029341588; + // species 15: HNO2 + result += y[15] * + (+4.66358504e+00 + 4.89854351e-03 * T - 1.79694193e-06 * T2 + + 2.94420361e-10 * T3 - 1.78235577e-14 * T4) * + 0.0212707123561568; + // species 16: HONO + result += y[16] * + (+5.79144641e+00 + 3.64630732e-03 * T - 1.29112765e-06 * T2 + + 2.06498233e-10 * T3 - 1.22138679e-14 * T4) * + 0.0212707123561568; + // species 17: HONO2 + result += y[17] * + (+8.03098942e+00 + 4.46958589e-03 * T - 1.72459491e-06 * T2 + + 2.91556153e-10 * T3 - 1.80102702e-14 * T4) * + 0.0158699930172031; + // species 19: H2NN + result += y[19] * + (+3.05903670e+00 + 6.18382347e-03 * T - 2.22171165e-06 * T2 + + 3.58539206e-10 * T3 - 2.14532905e-14 * T4) * + 0.0333000333000333; + // species 20: NH2OH + result += y[20] * + (+3.88112502e+00 + 8.15708448e-03 * T - 2.82615576e-06 * T2 + + 4.37930933e-10 * T3 - 2.52724604e-14 * T4) * + 0.0302755071147442; + // species 21: HNOH + result += y[21] * + (+3.98321933e+00 + 4.88846374e-03 * T - 1.65086637e-06 * T2 + + 2.55371446e-10 * T3 - 1.48308561e-14 * T4) * + 0.0312285303853601; + // species 22: NH3 + result += y[22] * + (+2.36074311e+00 + 6.31850146e-03 * T - 2.28966806e-06 * T2 + + 4.11767411e-10 * T3 - 2.90836787e-14 * T4) * + 0.0587164582232400; + // species 23: N2H4 + result += y[23] * + (+4.93957357e+00 + 8.75017187e-03 * T - 2.99399058e-06 * T2 + + 4.67278418e-10 * T3 - 2.73068599e-14 * T4) * + 0.0312051426075017; + // species 24: N + result += y[24] * + (+2.41594290e+00 + 1.74890650e-04 * T - 1.19023690e-07 * T2 + + 3.02262440e-11 * T3 - 2.03609830e-15 * T4) * + 0.0713928749910759; + // species 25: NO3 + result += y[25] * + (+7.48347702e+00 + 2.57772064e-03 * T - 1.00945831e-06 * T2 + + 1.72314063e-10 * T3 - 1.07154008e-14 * T4) * + 0.0161279917424682; + // species 26: NH + result += y[26] * + (+2.78372644e+00 + 1.32985888e-03 * T - 4.24785573e-07 * T2 + + 7.83494442e-11 * T3 - 5.50451310e-15 * T4) * + 0.0666000666000666; + // species 27: NNH + result += y[27] * + (+3.42744423e+00 + 3.23295234e-03 * T - 1.17296299e-06 * T2 + + 1.90508356e-10 * T3 - 1.14491506e-14 * T4) * + 0.0344566191165323; + // species 28: NH2 + result += y[28] * + (+2.59263049e+00 + 3.47683597e-03 * T - 1.08271624e-06 * T2 + + 1.49342558e-10 * T3 - 5.75241187e-15 * T4) * + 0.0624102852150034; + // species 29: H2NO + result += y[29] * + (+3.75555914e+00 + 5.16219354e-03 * T - 1.76387387e-06 * T2 + + 2.75052692e-10 * T3 - 1.60643143e-14 * T4) * + 0.0312285303853601; + // species 30: N2H3 + result += y[30] * + (+4.04483566e+00 + 7.31130186e-03 * T - 2.47625799e-06 * T2 + + 3.83733021e-10 * T3 - 2.23107573e-14 * T4) * + 0.0322185707842000; + } + + // species with midpoint at T=1380 kelvin + if (T < 1380) { + // species 18: N2H2 + result += y[18] * + (+2.55589425e+00 + 6.54339081e-03 * T - 8.81947855e-07 * T2 - + 1.15971304e-09 * T3 + 3.97442230e-13 * T4) * + 0.0333000333000333; + } else { + // species 18: N2H2 + result += y[18] * + (+4.14686796e+00 + 4.81612315e-03 * T - 1.62748817e-06 * T2 + + 2.50556098e-10 * T3 - 1.44494188e-14 * T4) * + 0.0333000333000333; + } + + cpbs = result * 8.31446261815324e+07; +} + +// Returns the mean specific heat at CV (Eq. 35) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKCVBL(const amrex::Real T, const amrex::Real x[], amrex::Real& cvbl) +{ + amrex::Real result = 0; + amrex::Real cvor[31]; // temporary storage + cv_R(cvor, T); + + // perform dot product + for (int id = 0; id < 31; ++id) { + result += x[id] * cvor[id]; + } + + cvbl = result * 8.31446261815324e+07; +} + +// Returns the mean specific heat at CV (Eq. 36) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKCVBS(const amrex::Real T, const amrex::Real y[], amrex::Real& cvbs) +{ + amrex::Real result = 0.0; + // compute Cv/R at the given temperature + const amrex::Real T2 = T * T; + const amrex::Real T3 = T * T * T; + const amrex::Real T4 = T * T * T * T; + + // species with midpoint at T=1000 kelvin + if (T < 1000) { + // species 0: AR + result += y[0] * + (+1.49988611e+00 + 2.13037960e-07 * T + 8.97320772e-10 * T2 - + 2.31395752e-12 * T3 + 1.30201393e-15 * T4) * + 0.0250312891113892; + // species 1: N2 + result += y[1] * + (+2.53603521e+00 - 1.58270944e-04 * T - 4.26984251e-07 * T2 + + 2.37542590e-09 * T3 - 1.39708206e-12 * T4) * + 0.0356964374955379; + // species 2: HE + result += y[2] * + (+1.49976293e+00 + 1.01013432e-06 * T - 8.24578465e-10 * T2 - + 6.85983306e-13 * T3 + 7.24751856e-16 * T4) * + 0.2498374807187924; + // species 3: H2 + result += y[3] * + (+1.37694204e+00 + 7.73916922e-03 * T - 1.88735073e-05 * T2 + + 1.95517114e-08 * T3 - 7.17095663e-12 * T4) * + 0.4960317460317460; + // species 4: H + result += y[4] * + (+1.49975925e+00 + 6.73824499e-07 * T + 1.11807261e-09 * T2 - + 3.70192126e-12 * T3 + 2.14233822e-15 * T4) * + 0.9920634920634921; + // species 5: O2 + result += y[5] * + (+2.78498258e+00 - 3.02002233e-03 * T + 9.92029171e-06 * T2 - + 9.77840434e-09 * T3 + 3.28877702e-12 * T4) * + 0.0312519532470779; + // species 6: O + result += y[6] * + (+2.15906526e+00 - 3.21509999e-03 * T + 6.49255543e-06 * T2 - + 5.98755115e-09 * T3 + 2.06876117e-12 * T4) * + 0.0625039064941559; + // species 7: H2O + result += y[7] * + (+3.20147551e+00 - 2.05583546e-03 * T + 6.56547207e-06 * T2 - + 5.52906960e-09 * T3 + 1.78282605e-12 * T4) * + 0.0555092978073827; + // species 8: OH + result += y[8] * + (+2.97585165e+00 - 2.28555291e-03 * T + 4.33442882e-06 * T2 - + 3.59926640e-09 * T3 + 1.26706930e-12 * T4) * + 0.0587993179279120; + // species 9: H2O2 + result += y[9] * + (+3.23854160e+00 - 2.49610911e-04 * T + 1.59857901e-05 * T2 - + 2.06919945e-08 * T3 + 8.29766320e-12 * T4) * + 0.0293996589639560; + // species 10: HO2 + result += y[10] * + (+3.26251250e+00 - 4.45642032e-03 * T + 2.05164934e-05 * T2 - + 2.35794011e-08 * T3 + 9.05614257e-12 * T4) * + 0.0302975216627280; + // species 11: NO + result += y[11] * + (+3.21859896e+00 - 4.63988124e-03 * T + 1.10443049e-05 * T2 - + 9.34055507e-09 * T3 + 2.80554874e-12 * T4) * + 0.0333266679997334; + // species 12: N2O + result += y[12] * + (+1.25715020e+00 + 1.13047280e-02 * T - 1.36713190e-05 * T2 + + 9.68198030e-09 * T3 - 2.93071820e-12 * T4) * + 0.0227205598345943; + // species 13: NO2 + result += y[13] * + (+2.94403120e+00 - 1.58542900e-03 * T + 1.66578120e-05 * T2 - + 2.04754260e-08 * T3 + 7.83505640e-12 * T4) * + 0.0217367677426367; + // species 14: HNO + result += y[14] * + (+3.53525574e+00 - 5.68543377e-03 * T + 1.85198540e-05 * T2 - + 1.71881225e-08 * T3 + 5.55818157e-12 * T4) * + 0.0322435029341588; + // species 15: HNO2 + result += y[15] * + (+3.03779347e+00 - 4.46123109e-03 * T + 3.19440815e-05 * T2 - + 3.79359490e-08 * T3 + 1.44570885e-11 * T4) * + 0.0212707123561568; + // species 16: HONO + result += y[16] * + (+2.16416438e+00 + 8.50517773e-03 * T + 5.48561573e-07 * T2 - + 8.27656474e-09 * T3 + 4.39957151e-12 * T4) * + 0.0212707123561568; + // species 17: HONO2 + result += y[17] * + (+6.93291540e-01 + 1.90167702e-02 * T - 8.25176697e-06 * T2 - + 6.06113827e-09 * T3 + 4.65236978e-12 * T4) * + 0.0158699930172031; + // species 19: H2NN + result += y[19] * + (+3.53204001e+00 - 7.32418578e-03 * T + 3.00803713e-05 * T2 - + 3.04000551e-08 * T3 + 1.04700639e-11 * T4) * + 0.0333000333000333; + // species 20: NH2OH + result += y[20] * + (+2.21016092e+00 + 6.19671676e-03 * T + 1.10594948e-05 * T2 - + 1.96668262e-08 * T3 + 8.82516590e-12 * T4) * + 0.0302755071147442; + // species 21: HNOH + result += y[21] * + (+2.95608248e+00 - 3.02611020e-03 * T + 2.56874396e-05 * T2 - + 3.15645120e-08 * T3 + 1.24084574e-11 * T4) * + 0.0312285303853601; + // species 22: NH3 + result += y[22] * + (+3.14027871e+00 - 3.58489142e-03 * T + 1.89475904e-05 * T2 - + 1.98833970e-08 * T3 + 7.15267961e-12 * T4) * + 0.0587164582232400; + // species 23: N2H4 + result += y[23] * + (+2.83472149e+00 - 6.49129555e-04 * T + 3.76848463e-05 * T2 - + 5.00709182e-08 * T3 + 2.03362064e-11 * T4) * + 0.0312051426075017; + // species 24: N + result += y[24] * (+1.50000000e+00) * 0.0713928749910759; + // species 25: NO3 + result += y[25] * + (+1.17359330e+00 + 1.04902685e-02 * T + 1.10472669e-05 * T2 - + 2.81561867e-08 * T3 + 1.36583960e-11 * T4) * + 0.0161279917424682; + // species 26: NH + result += y[26] * + (+2.49295037e+00 + 3.11795720e-04 * T - 1.48906628e-06 * T2 + + 2.48167402e-09 * T3 - 1.03570916e-12 * T4) * + 0.0666000666000666; + // species 27: NNH + result += y[27] * + (+3.25474632e+00 - 3.45098298e-03 * T + 1.37788699e-05 * T2 - + 1.33263744e-08 * T3 + 4.41023397e-12 * T4) * + 0.0344566191165323; + // species 28: NH2 + result += y[28] * + (+3.19198016e+00 - 2.04602827e-03 * T + 6.67756134e-06 * T2 - + 5.24907235e-09 * T3 + 1.55589948e-12 * T4) * + 0.0624102852150034; + // species 29: H2NO + result += y[29] * + (+2.93201139e+00 - 1.64028165e-04 * T + 1.39161409e-05 * T2 - + 1.62747853e-08 * T3 + 6.00352834e-12 * T4) * + 0.0312285303853601; + // species 30: N2H3 + result += y[30] * + (+2.42125505e+00 + 1.34901590e-03 * T + 2.23459071e-05 * T2 - + 2.99727732e-08 * T3 + 1.20978970e-11 * T4) * + 0.0322185707842000; + } else { + // species 0: AR + result += y[0] * + (+1.49989176e+00 + 1.56134837e-07 * T - 7.76108557e-11 * T2 + + 1.52928085e-14 * T3 - 1.05304493e-18 * T4) * + 0.0250312891113892; + // species 1: N2 + result += y[1] * + (+1.93802970e+00 + 1.41838030e-03 * T - 5.03281045e-07 * T2 + + 8.07555464e-11 * T3 - 4.76064275e-15 * T4) * + 0.0356964374955379; + // species 2: HE + result += y[2] * + (+1.49985609e+00 + 2.19365392e-07 * T - 1.07525085e-10 * T2 + + 2.07198041e-14 * T3 - 1.39358612e-18 * T4) * + 0.2498374807187924; + // species 3: H2 + result += y[3] * + (+1.90207649e+00 + 8.68992581e-04 * T - 1.65864430e-07 * T2 + + 1.90851899e-11 * T3 - 9.31121789e-16 * T4) * + 0.4960317460317460; + // species 4: H + result += y[4] * + (+1.49985211e+00 + 2.34582548e-07 * T - 1.16171641e-10 * T2 + + 2.25708298e-14 * T3 - 1.52992005e-18 * T4) * + 0.9920634920634921; + // species 5: O2 + result += y[5] * + (+2.65980488e+00 + 6.59877372e-04 * T - 1.44158172e-07 * T2 + + 2.14656037e-11 * T3 - 1.36503784e-15 * T4) * + 0.0312519532470779; + // species 6: O + result += y[6] * + (+1.55160087e+00 - 3.83085457e-05 * T + 8.43197478e-10 * T2 + + 4.01267136e-12 * T3 - 4.17476574e-16 * T4) * + 0.0625039064941559; + // species 7: H2O + result += y[7] * + (+1.73117512e+00 + 2.95136995e-03 * T - 8.35359785e-07 * T2 + + 1.26088593e-10 * T3 - 8.40531676e-15 * T4) * + 0.0555092978073827; + // species 8: OH + result += y[8] * + (+1.84581721e+00 + 1.09723818e-03 * T - 2.89121101e-07 * T2 + + 4.09099910e-11 * T3 - 2.31382258e-15 * T4) * + 0.0587993179279120; + // species 9: H2O2 + result += y[9] * + (+3.54017480e+00 + 4.15970971e-03 * T - 1.30876777e-06 * T2 + + 2.00823615e-10 * T3 - 1.15509243e-14 * T4) * + 0.0293996589639560; + // species 10: HO2 + result += y[10] * + (+3.10564010e+00 + 2.04046836e-03 * T - 3.65877562e-07 * T2 + + 1.85973044e-11 * T3 + 4.98818315e-16 * T4) * + 0.0302975216627280; + // species 11: NO + result += y[11] * + (+2.26071234e+00 + 1.19101135e-03 * T - 4.29122646e-07 * T2 + + 6.94481463e-11 * T3 - 4.03295681e-15 * T4) * + 0.0333266679997334; + // species 12: N2O + result += y[12] * + (+3.82307290e+00 + 2.62702510e-03 * T - 9.58508720e-07 * T2 + + 1.60007120e-10 * T3 - 9.77523020e-15 * T4) * + 0.0227205598345943; + // species 13: NO2 + result += y[13] * + (+3.88475400e+00 + 2.17239550e-03 * T - 8.28069090e-07 * T2 + + 1.57475100e-10 * T3 - 1.05108950e-14 * T4) * + 0.0217367677426367; + // species 14: HNO + result += y[14] * + (+2.16598124e+00 + 2.99958892e-03 * T - 3.94376786e-07 * T2 - + 3.85344089e-11 * T3 + 7.07602668e-15 * T4) * + 0.0322435029341588; + // species 15: HNO2 + result += y[15] * + (+3.66358504e+00 + 4.89854351e-03 * T - 1.79694193e-06 * T2 + + 2.94420361e-10 * T3 - 1.78235577e-14 * T4) * + 0.0212707123561568; + // species 16: HONO + result += y[16] * + (+4.79144641e+00 + 3.64630732e-03 * T - 1.29112765e-06 * T2 + + 2.06498233e-10 * T3 - 1.22138679e-14 * T4) * + 0.0212707123561568; + // species 17: HONO2 + result += y[17] * + (+7.03098942e+00 + 4.46958589e-03 * T - 1.72459491e-06 * T2 + + 2.91556153e-10 * T3 - 1.80102702e-14 * T4) * + 0.0158699930172031; + // species 19: H2NN + result += y[19] * + (+2.05903670e+00 + 6.18382347e-03 * T - 2.22171165e-06 * T2 + + 3.58539206e-10 * T3 - 2.14532905e-14 * T4) * + 0.0333000333000333; + // species 20: NH2OH + result += y[20] * + (+2.88112502e+00 + 8.15708448e-03 * T - 2.82615576e-06 * T2 + + 4.37930933e-10 * T3 - 2.52724604e-14 * T4) * + 0.0302755071147442; + // species 21: HNOH + result += y[21] * + (+2.98321933e+00 + 4.88846374e-03 * T - 1.65086637e-06 * T2 + + 2.55371446e-10 * T3 - 1.48308561e-14 * T4) * + 0.0312285303853601; + // species 22: NH3 + result += y[22] * + (+1.36074311e+00 + 6.31850146e-03 * T - 2.28966806e-06 * T2 + + 4.11767411e-10 * T3 - 2.90836787e-14 * T4) * + 0.0587164582232400; + // species 23: N2H4 + result += y[23] * + (+3.93957357e+00 + 8.75017187e-03 * T - 2.99399058e-06 * T2 + + 4.67278418e-10 * T3 - 2.73068599e-14 * T4) * + 0.0312051426075017; + // species 24: N + result += y[24] * + (+1.41594290e+00 + 1.74890650e-04 * T - 1.19023690e-07 * T2 + + 3.02262440e-11 * T3 - 2.03609830e-15 * T4) * + 0.0713928749910759; + // species 25: NO3 + result += y[25] * + (+6.48347702e+00 + 2.57772064e-03 * T - 1.00945831e-06 * T2 + + 1.72314063e-10 * T3 - 1.07154008e-14 * T4) * + 0.0161279917424682; + // species 26: NH + result += y[26] * + (+1.78372644e+00 + 1.32985888e-03 * T - 4.24785573e-07 * T2 + + 7.83494442e-11 * T3 - 5.50451310e-15 * T4) * + 0.0666000666000666; + // species 27: NNH + result += y[27] * + (+2.42744423e+00 + 3.23295234e-03 * T - 1.17296299e-06 * T2 + + 1.90508356e-10 * T3 - 1.14491506e-14 * T4) * + 0.0344566191165323; + // species 28: NH2 + result += y[28] * + (+1.59263049e+00 + 3.47683597e-03 * T - 1.08271624e-06 * T2 + + 1.49342558e-10 * T3 - 5.75241187e-15 * T4) * + 0.0624102852150034; + // species 29: H2NO + result += y[29] * + (+2.75555914e+00 + 5.16219354e-03 * T - 1.76387387e-06 * T2 + + 2.75052692e-10 * T3 - 1.60643143e-14 * T4) * + 0.0312285303853601; + // species 30: N2H3 + result += y[30] * + (+3.04483566e+00 + 7.31130186e-03 * T - 2.47625799e-06 * T2 + + 3.83733021e-10 * T3 - 2.23107573e-14 * T4) * + 0.0322185707842000; + } + + // species with midpoint at T=1380 kelvin + if (T < 1380) { + // species 18: N2H2 + result += y[18] * + (+1.55589425e+00 + 6.54339081e-03 * T - 8.81947855e-07 * T2 - + 1.15971304e-09 * T3 + 3.97442230e-13 * T4) * + 0.0333000333000333; + } else { + // species 18: N2H2 + result += y[18] * + (+3.14686796e+00 + 4.81612315e-03 * T - 1.62748817e-06 * T2 + + 2.50556098e-10 * T3 - 1.44494188e-14 * T4) * + 0.0333000333000333; + } + + cvbs = result * 8.31446261815324e+07; +} + +// Returns the mean enthalpy of the mixture in molar units +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKHBML(const amrex::Real T, const amrex::Real x[], amrex::Real& hbml) +{ + amrex::Real result = 0; + amrex::Real hml[31]; // temporary storage + amrex::Real RT = 8.31446261815324e+07 * T; // R*T + speciesEnthalpy(hml, T); + + // perform dot product + for (int id = 0; id < 31; ++id) { + result += x[id] * hml[id]; + } + + hbml = result * RT; +} + +// Returns mean enthalpy of mixture in mass units +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKHBMS(const amrex::Real T, const amrex::Real y[], amrex::Real& hbms) +{ + amrex::Real result = 0.0; + const amrex::Real T2 = T * T; + const amrex::Real T3 = T * T * T; + const amrex::Real T4 = T * T * T * T; + const amrex::Real invT = 1.0 / T; + + // species with midpoint at T=1000 kelvin + if (T < 1000) { + // species 0: AR + result += + y[0] * + (+2.49988611e+00 + 1.06518980e-07 * T + 2.99106924e-10 * T2 - + 5.78489380e-13 * T3 + 2.60402786e-16 * T4 - 7.45354481e+02 * invT) * + 0.0250312891113892; + // species 1: N2 + result += + y[1] * + (+3.53603521e+00 - 7.91354720e-05 * T - 1.42328084e-07 * T2 + + 5.93856475e-10 * T3 - 2.79416412e-13 * T4 - 1.04749645e+03 * invT) * + 0.0356964374955379; + // species 2: HE + result += + y[2] * + (+2.49976293e+00 + 5.05067160e-07 * T - 2.74859488e-10 * T2 - + 1.71495826e-13 * T3 + 1.44950371e-16 * T4 - 7.45340917e+02 * invT) * + 0.2498374807187924; + // species 3: H2 + result += + y[3] * + (+2.37694204e+00 + 3.86958461e-03 * T - 6.29116910e-06 * T2 + + 4.88792785e-09 * T3 - 1.43419133e-12 * T4 - 9.21173081e+02 * invT) * + 0.4960317460317460; + // species 4: H + result += + y[4] * + (+2.49975925e+00 + 3.36912250e-07 * T + 3.72690870e-10 * T2 - + 9.25480315e-13 * T3 + 4.28467644e-16 * T4 + 2.54737665e+04 * invT) * + 0.9920634920634921; + // species 5: O2 + result += + y[5] * + (+3.78498258e+00 - 1.51001116e-03 * T + 3.30676390e-06 * T2 - + 2.44460109e-09 * T3 + 6.57755404e-13 * T4 - 1.06413589e+03 * invT) * + 0.0312519532470779; + // species 6: O + result += + y[6] * + (+3.15906526e+00 - 1.60754999e-03 * T + 2.16418514e-06 * T2 - + 1.49688779e-09 * T3 + 4.13752234e-13 * T4 + 2.91298453e+04 * invT) * + 0.0625039064941559; + // species 7: H2O + result += + y[7] * + (+4.20147551e+00 - 1.02791773e-03 * T + 2.18849069e-06 * T2 - + 1.38226740e-09 * T3 + 3.56565210e-13 * T4 - 3.02950066e+04 * invT) * + 0.0555092978073827; + // species 8: OH + result += + y[8] * + (+3.97585165e+00 - 1.14277645e-03 * T + 1.44480961e-06 * T2 - + 8.99816600e-10 * T3 + 2.53413860e-13 * T4 + 3.39341137e+03 * invT) * + 0.0587993179279120; + // species 9: H2O2 + result += + y[9] * + (+4.23854160e+00 - 1.24805455e-04 * T + 5.32859670e-06 * T2 - + 5.17299863e-09 * T3 + 1.65953264e-12 * T4 - 1.76486003e+04 * invT) * + 0.0293996589639560; + // species 10: HO2 + result += + y[10] * + (+4.26251250e+00 - 2.22821016e-03 * T + 6.83883113e-06 * T2 - + 5.89485027e-09 * T3 + 1.81122851e-12 * T4 + 2.62442356e+02 * invT) * + 0.0302975216627280; + // species 11: NO + result += + y[11] * + (+4.21859896e+00 - 2.31994062e-03 * T + 3.68143497e-06 * T2 - + 2.33513877e-09 * T3 + 5.61109748e-13 * T4 + 9.84509964e+03 * invT) * + 0.0333266679997334; + // species 12: N2O + result += + y[12] * + (+2.25715020e+00 + 5.65236400e-03 * T - 4.55710633e-06 * T2 + + 2.42049508e-09 * T3 - 5.86143640e-13 * T4 + 8.74177460e+03 * invT) * + 0.0227205598345943; + // species 13: NO2 + result += + y[13] * + (+3.94403120e+00 - 7.92714500e-04 * T + 5.55260400e-06 * T2 - + 5.11885650e-09 * T3 + 1.56701128e-12 * T4 + 2.89661800e+03 * invT) * + 0.0217367677426367; + // species 14: HNO + result += + y[14] * + (+4.53525574e+00 - 2.84271688e-03 * T + 6.17328467e-06 * T2 - + 4.29703062e-09 * T3 + 1.11163631e-12 * T4 + 1.16183003e+04 * invT) * + 0.0322435029341588; + // species 15: HNO2 + result += + y[15] * + (+4.03779347e+00 - 2.23061555e-03 * T + 1.06480272e-05 * T2 - + 9.48398725e-09 * T3 + 2.89141770e-12 * T4 - 6.53088236e+03 * invT) * + 0.0212707123561568; + // species 16: HONO + result += + y[16] * + (+3.16416438e+00 + 4.25258887e-03 * T + 1.82853858e-07 * T2 - + 2.06914118e-09 * T3 + 8.79914302e-13 * T4 - 1.07744086e+04 * invT) * + 0.0212707123561568; + // species 17: HONO2 + result += + y[17] * + (+1.69329154e+00 + 9.50838510e-03 * T - 2.75058899e-06 * T2 - + 1.51528457e-09 * T3 + 9.30473956e-13 * T4 - 1.74198909e+04 * invT) * + 0.0158699930172031; + // species 19: H2NN + result += + y[19] * + (+4.53204001e+00 - 3.66209289e-03 * T + 1.00267904e-05 * T2 - + 7.60001377e-09 * T3 + 2.09401278e-12 * T4 + 3.49580003e+04 * invT) * + 0.0333000333000333; + // species 20: NH2OH + result += + y[20] * + (+3.21016092e+00 + 3.09835838e-03 * T + 3.68649827e-06 * T2 - + 4.91670655e-09 * T3 + 1.76503318e-12 * T4 - 6.58148481e+03 * invT) * + 0.0302755071147442; + // species 21: HNOH + result += + y[21] * + (+3.95608248e+00 - 1.51305510e-03 * T + 8.56247987e-06 * T2 - + 7.89112800e-09 * T3 + 2.48169148e-12 * T4 + 1.09199790e+04 * invT) * + 0.0312285303853601; + // species 22: NH3 + result += + y[22] * + (+4.14027871e+00 - 1.79244571e-03 * T + 6.31586347e-06 * T2 - + 4.97084925e-09 * T3 + 1.43053592e-12 * T4 - 6.68545158e+03 * invT) * + 0.0587164582232400; + // species 23: N2H4 + result += + y[23] * + (+3.83472149e+00 - 3.24564777e-04 * T + 1.25616154e-05 * T2 - + 1.25177296e-08 * T3 + 4.06724128e-12 * T4 + 1.00893925e+04 * invT) * + 0.0312051426075017; + // species 24: N + result += + y[24] * (+2.50000000e+00 + 5.61046380e+04 * invT) * 0.0713928749910759; + // species 25: NO3 + result += + y[25] * + (+2.17359330e+00 + 5.24513425e-03 * T + 3.68242230e-06 * T2 - + 7.03904667e-09 * T3 + 2.73167920e-12 * T4 + 7.81290905e+03 * invT) * + 0.0161279917424682; + // species 26: NH + result += + y[26] * + (+3.49295037e+00 + 1.55897860e-04 * T - 4.96355427e-07 * T2 + + 6.20418505e-10 * T3 - 2.07141832e-13 * T4 + 4.21059722e+04 * invT) * + 0.0666000666000666; + // species 27: NNH + result += + y[27] * + (+4.25474632e+00 - 1.72549149e-03 * T + 4.59295663e-06 * T2 - + 3.33159360e-09 * T3 + 8.82046794e-13 * T4 + 2.87932080e+04 * invT) * + 0.0344566191165323; + // species 28: NH2 + result += + y[28] * + (+4.19198016e+00 - 1.02301413e-03 * T + 2.22585378e-06 * T2 - + 1.31226809e-09 * T3 + 3.11179896e-13 * T4 + 2.11863286e+04 * invT) * + 0.0624102852150034; + // species 29: H2NO + result += + y[29] * + (+3.93201139e+00 - 8.20140825e-05 * T + 4.63871363e-06 * T2 - + 4.06869633e-09 * T3 + 1.20070567e-12 * T4 + 6.71178975e+03 * invT) * + 0.0312285303853601; + // species 30: N2H3 + result += + y[30] * + (+3.42125505e+00 + 6.74507950e-04 * T + 7.44863570e-06 * T2 - + 7.49319330e-09 * T3 + 2.41957940e-12 * T4 + 2.58198956e+04 * invT) * + 0.0322185707842000; + } else { + // species 0: AR + result += + y[0] * + (+2.49989176e+00 + 7.80674185e-08 * T - 2.58702852e-11 * T2 + + 3.82320212e-15 * T3 - 2.10608986e-19 * T4 - 7.45328403e+02 * invT) * + 0.0250312891113892; + // species 1: N2 + result += + y[1] * + (+2.93802970e+00 + 7.09190150e-04 * T - 1.67760348e-07 * T2 + + 2.01888866e-11 * T3 - 9.52128550e-16 * T4 - 9.17180990e+02 * invT) * + 0.0356964374955379; + // species 2: HE + result += + y[2] * + (+2.49985609e+00 + 1.09682696e-07 * T - 3.58416950e-11 * T2 + + 5.17995102e-15 * T3 - 2.78717224e-19 * T4 - 7.45309155e+02 * invT) * + 0.2498374807187924; + // species 3: H2 + result += + y[3] * + (+2.90207649e+00 + 4.34496291e-04 * T - 5.52881433e-08 * T2 + + 4.77129748e-12 * T3 - 1.86224358e-16 * T4 - 7.97948726e+02 * invT) * + 0.4960317460317460; + // species 4: H + result += + y[4] * + (+2.49985211e+00 + 1.17291274e-07 * T - 3.87238803e-11 * T2 + + 5.64270745e-15 * T3 - 3.05984010e-19 * T4 + 2.54738024e+04 * invT) * + 0.9920634920634921; + // species 5: O2 + result += + y[5] * + (+3.65980488e+00 + 3.29938686e-04 * T - 4.80527240e-08 * T2 + + 5.36640092e-12 * T3 - 2.73007568e-16 * T4 - 1.21603048e+03 * invT) * + 0.0312519532470779; + // species 6: O + result += + y[6] * + (+2.55160087e+00 - 1.91542728e-05 * T + 2.81065826e-10 * T2 + + 1.00316784e-12 * T3 - 8.34953148e-17 * T4 + 2.92287628e+04 * invT) * + 0.0625039064941559; + // species 7: H2O + result += + y[7] * + (+2.73117512e+00 + 1.47568497e-03 * T - 2.78453262e-07 * T2 + + 3.15221483e-11 * T3 - 1.68106335e-15 * T4 - 2.99169082e+04 * invT) * + 0.0555092978073827; + // species 8: OH + result += + y[8] * + (+2.84581721e+00 + 5.48619090e-04 * T - 9.63737003e-08 * T2 + + 1.02274977e-11 * T3 - 4.62764516e-16 * T4 + 3.71706610e+03 * invT) * + 0.0587993179279120; + // species 9: H2O2 + result += + y[9] * + (+4.54017480e+00 + 2.07985485e-03 * T - 4.36255923e-07 * T2 + + 5.02059038e-11 * T3 - 2.31018486e-15 * T4 - 1.79514029e+04 * invT) * + 0.0293996589639560; + // species 10: HO2 + result += + y[10] * + (+4.10564010e+00 + 1.02023418e-03 * T - 1.21959187e-07 * T2 + + 4.64932610e-12 * T3 + 9.97636630e-17 * T4 + 4.32898769e+01 * invT) * + 0.0302975216627280; + // species 11: NO + result += + y[11] * + (+3.26071234e+00 + 5.95505675e-04 * T - 1.43040882e-07 * T2 + + 1.73620366e-11 * T3 - 8.06591362e-16 * T4 + 9.92143132e+03 * invT) * + 0.0333266679997334; + // species 12: N2O + result += + y[12] * + (+4.82307290e+00 + 1.31351255e-03 * T - 3.19502907e-07 * T2 + + 4.00017800e-11 * T3 - 1.95504604e-15 * T4 + 8.07340470e+03 * invT) * + 0.0227205598345943; + // species 13: NO2 + result += + y[13] * + (+4.88475400e+00 + 1.08619775e-03 * T - 2.76023030e-07 * T2 + + 3.93687750e-11 * T3 - 2.10217900e-15 * T4 + 2.31649820e+03 * invT) * + 0.0217367677426367; + // species 14: HNO + result += + y[14] * + (+3.16598124e+00 + 1.49979446e-03 * T - 1.31458929e-07 * T2 - + 9.63360222e-12 * T3 + 1.41520534e-15 * T4 + 1.17726311e+04 * invT) * + 0.0322435029341588; + // species 15: HNO2 + result += + y[15] * + (+4.66358504e+00 + 2.44927175e-03 * T - 5.98980643e-07 * T2 + + 7.36050902e-11 * T3 - 3.56471154e-15 * T4 - 7.25216334e+03 * invT) * + 0.0212707123561568; + // species 16: HONO + result += + y[16] * + (+5.79144641e+00 + 1.82315366e-03 * T - 4.30375883e-07 * T2 + + 5.16245582e-11 * T3 - 2.44277358e-15 * T4 - 1.15974343e+04 * invT) * + 0.0212707123561568; + // species 17: HONO2 + result += + y[17] * + (+8.03098942e+00 + 2.23479294e-03 * T - 5.74864970e-07 * T2 + + 7.28890383e-11 * T3 - 3.60205404e-15 * T4 - 1.93138183e+04 * invT) * + 0.0158699930172031; + // species 19: H2NN + result += + y[19] * + (+3.05903670e+00 + 3.09191173e-03 * T - 7.40570550e-07 * T2 + + 8.96348015e-11 * T3 - 4.29065810e-15 * T4 + 3.48530149e+04 * invT) * + 0.0333000333000333; + // species 20: NH2OH + result += + y[20] * + (+3.88112502e+00 + 4.07854224e-03 * T - 9.42051920e-07 * T2 + + 1.09482733e-10 * T3 - 5.05449208e-15 * T4 - 6.86018419e+03 * invT) * + 0.0302755071147442; + // species 21: HNOH + result += + y[21] * + (+3.98321933e+00 + 2.44423187e-03 * T - 5.50288790e-07 * T2 + + 6.38428615e-11 * T3 - 2.96617122e-15 * T4 + 1.05780106e+04 * invT) * + 0.0312285303853601; + // species 22: NH3 + result += + y[22] * + (+2.36074311e+00 + 3.15925073e-03 * T - 7.63222687e-07 * T2 + + 1.02941853e-10 * T3 - 5.81673574e-15 * T4 - 6.41596473e+03 * invT) * + 0.0587164582232400; + // species 23: N2H4 + result += + y[23] * + (+4.93957357e+00 + 4.37508594e-03 * T - 9.97996860e-07 * T2 + + 1.16819604e-10 * T3 - 5.46137198e-15 * T4 + 9.28265548e+03 * invT) * + 0.0312051426075017; + // species 24: N + result += + y[24] * + (+2.41594290e+00 + 8.74453250e-05 * T - 3.96745633e-08 * T2 + + 7.55656100e-12 * T3 - 4.07219660e-16 * T4 + 5.61337750e+04 * invT) * + 0.0713928749910759; + // species 25: NO3 + result += + y[25] * + (+7.48347702e+00 + 1.28886032e-03 * T - 3.36486103e-07 * T2 + + 4.30785157e-11 * T3 - 2.14308016e-15 * T4 + 6.12990474e+03 * invT) * + 0.0161279917424682; + // species 26: NH + result += + y[26] * + (+2.78372644e+00 + 6.64929440e-04 * T - 1.41595191e-07 * T2 + + 1.95873611e-11 * T3 - 1.10090262e-15 * T4 + 4.23461945e+04 * invT) * + 0.0666000666000666; + // species 27: NNH + result += + y[27] * + (+3.42744423e+00 + 1.61647617e-03 * T - 3.90987663e-07 * T2 + + 4.76270890e-11 * T3 - 2.28983012e-15 * T4 + 2.87676026e+04 * invT) * + 0.0344566191165323; + // species 28: NH2 + result += + y[28] * + (+2.59263049e+00 + 1.73841799e-03 * T - 3.60905413e-07 * T2 + + 3.73356395e-11 * T3 - 1.15048237e-15 * T4 + 2.15737320e+04 * invT) * + 0.0624102852150034; + // species 29: H2NO + result += + y[29] * + (+3.75555914e+00 + 2.58109677e-03 * T - 5.87957957e-07 * T2 + + 6.87631730e-11 * T3 - 3.21286286e-15 * T4 + 6.51826177e+03 * invT) * + 0.0312285303853601; + // species 30: N2H3 + result += + y[30] * + (+4.04483566e+00 + 3.65565093e-03 * T - 8.25419330e-07 * T2 + + 9.59332552e-11 * T3 - 4.46215146e-15 * T4 + 2.53241420e+04 * invT) * + 0.0322185707842000; + } + + // species with midpoint at T=1380 kelvin + if (T < 1380) { + // species 18: N2H2 + result += + y[18] * + (+2.55589425e+00 + 3.27169540e-03 * T - 2.93982618e-07 * T2 - + 2.89928260e-10 * T3 + 7.94884460e-14 * T4 + 2.41085081e+04 * invT) * + 0.0333000333000333; + } else { + // species 18: N2H2 + result += + y[18] * + (+4.14686796e+00 + 2.40806157e-03 * T - 5.42496057e-07 * T2 + + 6.26390245e-11 * T3 - 2.88988376e-15 * T4 + 2.33444055e+04 * invT) * + 0.0333000333000333; + } + + const amrex::Real RT = 8.31446261815324e+07 * T; // R*T + + hbms = result * RT; +} + +// get mean internal energy in molar units +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKUBML(const amrex::Real T, const amrex::Real x[], amrex::Real& ubml) +{ + amrex::Real result = 0; + amrex::Real uml[31]; // temporary energy array + amrex::Real RT = 8.31446261815324e+07 * T; // R*T + speciesInternalEnergy(uml, T); + + // perform dot product + for (int id = 0; id < 31; ++id) { + result += x[id] * uml[id]; + } + + ubml = result * RT; +} + +// get mean internal energy in mass units +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKUBMS(const amrex::Real T, const amrex::Real y[], amrex::Real& ubms) +{ + amrex::Real result = 0.0; + const amrex::Real T2 = T * T; + const amrex::Real T3 = T * T * T; + const amrex::Real T4 = T * T * T * T; + const amrex::Real invT = 1.0 / T; + + // species with midpoint at T=1000 kelvin + if (T < 1000) { + // species 0: AR + result += + y[0] * + (+1.49988611e+00 + 1.06518980e-07 * T + 2.99106924e-10 * T2 - + 5.78489380e-13 * T3 + 2.60402786e-16 * T4 - 7.45354481e+02 * invT) * + 0.0250312891113892; + // species 1: N2 + result += + y[1] * + (+2.53603521e+00 - 7.91354720e-05 * T - 1.42328084e-07 * T2 + + 5.93856475e-10 * T3 - 2.79416412e-13 * T4 - 1.04749645e+03 * invT) * + 0.0356964374955379; + // species 2: HE + result += + y[2] * + (+1.49976293e+00 + 5.05067160e-07 * T - 2.74859488e-10 * T2 - + 1.71495826e-13 * T3 + 1.44950371e-16 * T4 - 7.45340917e+02 * invT) * + 0.2498374807187924; + // species 3: H2 + result += + y[3] * + (+1.37694204e+00 + 3.86958461e-03 * T - 6.29116910e-06 * T2 + + 4.88792785e-09 * T3 - 1.43419133e-12 * T4 - 9.21173081e+02 * invT) * + 0.4960317460317460; + // species 4: H + result += + y[4] * + (+1.49975925e+00 + 3.36912250e-07 * T + 3.72690870e-10 * T2 - + 9.25480315e-13 * T3 + 4.28467644e-16 * T4 + 2.54737665e+04 * invT) * + 0.9920634920634921; + // species 5: O2 + result += + y[5] * + (+2.78498258e+00 - 1.51001116e-03 * T + 3.30676390e-06 * T2 - + 2.44460109e-09 * T3 + 6.57755404e-13 * T4 - 1.06413589e+03 * invT) * + 0.0312519532470779; + // species 6: O + result += + y[6] * + (+2.15906526e+00 - 1.60754999e-03 * T + 2.16418514e-06 * T2 - + 1.49688779e-09 * T3 + 4.13752234e-13 * T4 + 2.91298453e+04 * invT) * + 0.0625039064941559; + // species 7: H2O + result += + y[7] * + (+3.20147551e+00 - 1.02791773e-03 * T + 2.18849069e-06 * T2 - + 1.38226740e-09 * T3 + 3.56565210e-13 * T4 - 3.02950066e+04 * invT) * + 0.0555092978073827; + // species 8: OH + result += + y[8] * + (+2.97585165e+00 - 1.14277645e-03 * T + 1.44480961e-06 * T2 - + 8.99816600e-10 * T3 + 2.53413860e-13 * T4 + 3.39341137e+03 * invT) * + 0.0587993179279120; + // species 9: H2O2 + result += + y[9] * + (+3.23854160e+00 - 1.24805455e-04 * T + 5.32859670e-06 * T2 - + 5.17299863e-09 * T3 + 1.65953264e-12 * T4 - 1.76486003e+04 * invT) * + 0.0293996589639560; + // species 10: HO2 + result += + y[10] * + (+3.26251250e+00 - 2.22821016e-03 * T + 6.83883113e-06 * T2 - + 5.89485027e-09 * T3 + 1.81122851e-12 * T4 + 2.62442356e+02 * invT) * + 0.0302975216627280; + // species 11: NO + result += + y[11] * + (+3.21859896e+00 - 2.31994062e-03 * T + 3.68143497e-06 * T2 - + 2.33513877e-09 * T3 + 5.61109748e-13 * T4 + 9.84509964e+03 * invT) * + 0.0333266679997334; + // species 12: N2O + result += + y[12] * + (+1.25715020e+00 + 5.65236400e-03 * T - 4.55710633e-06 * T2 + + 2.42049508e-09 * T3 - 5.86143640e-13 * T4 + 8.74177460e+03 * invT) * + 0.0227205598345943; + // species 13: NO2 + result += + y[13] * + (+2.94403120e+00 - 7.92714500e-04 * T + 5.55260400e-06 * T2 - + 5.11885650e-09 * T3 + 1.56701128e-12 * T4 + 2.89661800e+03 * invT) * + 0.0217367677426367; + // species 14: HNO + result += + y[14] * + (+3.53525574e+00 - 2.84271688e-03 * T + 6.17328467e-06 * T2 - + 4.29703062e-09 * T3 + 1.11163631e-12 * T4 + 1.16183003e+04 * invT) * + 0.0322435029341588; + // species 15: HNO2 + result += + y[15] * + (+3.03779347e+00 - 2.23061555e-03 * T + 1.06480272e-05 * T2 - + 9.48398725e-09 * T3 + 2.89141770e-12 * T4 - 6.53088236e+03 * invT) * + 0.0212707123561568; + // species 16: HONO + result += + y[16] * + (+2.16416438e+00 + 4.25258887e-03 * T + 1.82853858e-07 * T2 - + 2.06914118e-09 * T3 + 8.79914302e-13 * T4 - 1.07744086e+04 * invT) * + 0.0212707123561568; + // species 17: HONO2 + result += + y[17] * + (+6.93291540e-01 + 9.50838510e-03 * T - 2.75058899e-06 * T2 - + 1.51528457e-09 * T3 + 9.30473956e-13 * T4 - 1.74198909e+04 * invT) * + 0.0158699930172031; + // species 19: H2NN + result += + y[19] * + (+3.53204001e+00 - 3.66209289e-03 * T + 1.00267904e-05 * T2 - + 7.60001377e-09 * T3 + 2.09401278e-12 * T4 + 3.49580003e+04 * invT) * + 0.0333000333000333; + // species 20: NH2OH + result += + y[20] * + (+2.21016092e+00 + 3.09835838e-03 * T + 3.68649827e-06 * T2 - + 4.91670655e-09 * T3 + 1.76503318e-12 * T4 - 6.58148481e+03 * invT) * + 0.0302755071147442; + // species 21: HNOH + result += + y[21] * + (+2.95608248e+00 - 1.51305510e-03 * T + 8.56247987e-06 * T2 - + 7.89112800e-09 * T3 + 2.48169148e-12 * T4 + 1.09199790e+04 * invT) * + 0.0312285303853601; + // species 22: NH3 + result += + y[22] * + (+3.14027871e+00 - 1.79244571e-03 * T + 6.31586347e-06 * T2 - + 4.97084925e-09 * T3 + 1.43053592e-12 * T4 - 6.68545158e+03 * invT) * + 0.0587164582232400; + // species 23: N2H4 + result += + y[23] * + (+2.83472149e+00 - 3.24564777e-04 * T + 1.25616154e-05 * T2 - + 1.25177296e-08 * T3 + 4.06724128e-12 * T4 + 1.00893925e+04 * invT) * + 0.0312051426075017; + // species 24: N + result += + y[24] * (+1.50000000e+00 + 5.61046380e+04 * invT) * 0.0713928749910759; + // species 25: NO3 + result += + y[25] * + (+1.17359330e+00 + 5.24513425e-03 * T + 3.68242230e-06 * T2 - + 7.03904667e-09 * T3 + 2.73167920e-12 * T4 + 7.81290905e+03 * invT) * + 0.0161279917424682; + // species 26: NH + result += + y[26] * + (+2.49295037e+00 + 1.55897860e-04 * T - 4.96355427e-07 * T2 + + 6.20418505e-10 * T3 - 2.07141832e-13 * T4 + 4.21059722e+04 * invT) * + 0.0666000666000666; + // species 27: NNH + result += + y[27] * + (+3.25474632e+00 - 1.72549149e-03 * T + 4.59295663e-06 * T2 - + 3.33159360e-09 * T3 + 8.82046794e-13 * T4 + 2.87932080e+04 * invT) * + 0.0344566191165323; + // species 28: NH2 + result += + y[28] * + (+3.19198016e+00 - 1.02301413e-03 * T + 2.22585378e-06 * T2 - + 1.31226809e-09 * T3 + 3.11179896e-13 * T4 + 2.11863286e+04 * invT) * + 0.0624102852150034; + // species 29: H2NO + result += + y[29] * + (+2.93201139e+00 - 8.20140825e-05 * T + 4.63871363e-06 * T2 - + 4.06869633e-09 * T3 + 1.20070567e-12 * T4 + 6.71178975e+03 * invT) * + 0.0312285303853601; + // species 30: N2H3 + result += + y[30] * + (+2.42125505e+00 + 6.74507950e-04 * T + 7.44863570e-06 * T2 - + 7.49319330e-09 * T3 + 2.41957940e-12 * T4 + 2.58198956e+04 * invT) * + 0.0322185707842000; + } else { + // species 0: AR + result += + y[0] * + (+1.49989176e+00 + 7.80674185e-08 * T - 2.58702852e-11 * T2 + + 3.82320212e-15 * T3 - 2.10608986e-19 * T4 - 7.45328403e+02 * invT) * + 0.0250312891113892; + // species 1: N2 + result += + y[1] * + (+1.93802970e+00 + 7.09190150e-04 * T - 1.67760348e-07 * T2 + + 2.01888866e-11 * T3 - 9.52128550e-16 * T4 - 9.17180990e+02 * invT) * + 0.0356964374955379; + // species 2: HE + result += + y[2] * + (+1.49985609e+00 + 1.09682696e-07 * T - 3.58416950e-11 * T2 + + 5.17995102e-15 * T3 - 2.78717224e-19 * T4 - 7.45309155e+02 * invT) * + 0.2498374807187924; + // species 3: H2 + result += + y[3] * + (+1.90207649e+00 + 4.34496291e-04 * T - 5.52881433e-08 * T2 + + 4.77129748e-12 * T3 - 1.86224358e-16 * T4 - 7.97948726e+02 * invT) * + 0.4960317460317460; + // species 4: H + result += + y[4] * + (+1.49985211e+00 + 1.17291274e-07 * T - 3.87238803e-11 * T2 + + 5.64270745e-15 * T3 - 3.05984010e-19 * T4 + 2.54738024e+04 * invT) * + 0.9920634920634921; + // species 5: O2 + result += + y[5] * + (+2.65980488e+00 + 3.29938686e-04 * T - 4.80527240e-08 * T2 + + 5.36640092e-12 * T3 - 2.73007568e-16 * T4 - 1.21603048e+03 * invT) * + 0.0312519532470779; + // species 6: O + result += + y[6] * + (+1.55160087e+00 - 1.91542728e-05 * T + 2.81065826e-10 * T2 + + 1.00316784e-12 * T3 - 8.34953148e-17 * T4 + 2.92287628e+04 * invT) * + 0.0625039064941559; + // species 7: H2O + result += + y[7] * + (+1.73117512e+00 + 1.47568497e-03 * T - 2.78453262e-07 * T2 + + 3.15221483e-11 * T3 - 1.68106335e-15 * T4 - 2.99169082e+04 * invT) * + 0.0555092978073827; + // species 8: OH + result += + y[8] * + (+1.84581721e+00 + 5.48619090e-04 * T - 9.63737003e-08 * T2 + + 1.02274977e-11 * T3 - 4.62764516e-16 * T4 + 3.71706610e+03 * invT) * + 0.0587993179279120; + // species 9: H2O2 + result += + y[9] * + (+3.54017480e+00 + 2.07985485e-03 * T - 4.36255923e-07 * T2 + + 5.02059038e-11 * T3 - 2.31018486e-15 * T4 - 1.79514029e+04 * invT) * + 0.0293996589639560; + // species 10: HO2 + result += + y[10] * + (+3.10564010e+00 + 1.02023418e-03 * T - 1.21959187e-07 * T2 + + 4.64932610e-12 * T3 + 9.97636630e-17 * T4 + 4.32898769e+01 * invT) * + 0.0302975216627280; + // species 11: NO + result += + y[11] * + (+2.26071234e+00 + 5.95505675e-04 * T - 1.43040882e-07 * T2 + + 1.73620366e-11 * T3 - 8.06591362e-16 * T4 + 9.92143132e+03 * invT) * + 0.0333266679997334; + // species 12: N2O + result += + y[12] * + (+3.82307290e+00 + 1.31351255e-03 * T - 3.19502907e-07 * T2 + + 4.00017800e-11 * T3 - 1.95504604e-15 * T4 + 8.07340470e+03 * invT) * + 0.0227205598345943; + // species 13: NO2 + result += + y[13] * + (+3.88475400e+00 + 1.08619775e-03 * T - 2.76023030e-07 * T2 + + 3.93687750e-11 * T3 - 2.10217900e-15 * T4 + 2.31649820e+03 * invT) * + 0.0217367677426367; + // species 14: HNO + result += + y[14] * + (+2.16598124e+00 + 1.49979446e-03 * T - 1.31458929e-07 * T2 - + 9.63360222e-12 * T3 + 1.41520534e-15 * T4 + 1.17726311e+04 * invT) * + 0.0322435029341588; + // species 15: HNO2 + result += + y[15] * + (+3.66358504e+00 + 2.44927175e-03 * T - 5.98980643e-07 * T2 + + 7.36050902e-11 * T3 - 3.56471154e-15 * T4 - 7.25216334e+03 * invT) * + 0.0212707123561568; + // species 16: HONO + result += + y[16] * + (+4.79144641e+00 + 1.82315366e-03 * T - 4.30375883e-07 * T2 + + 5.16245582e-11 * T3 - 2.44277358e-15 * T4 - 1.15974343e+04 * invT) * + 0.0212707123561568; + // species 17: HONO2 + result += + y[17] * + (+7.03098942e+00 + 2.23479294e-03 * T - 5.74864970e-07 * T2 + + 7.28890383e-11 * T3 - 3.60205404e-15 * T4 - 1.93138183e+04 * invT) * + 0.0158699930172031; + // species 19: H2NN + result += + y[19] * + (+2.05903670e+00 + 3.09191173e-03 * T - 7.40570550e-07 * T2 + + 8.96348015e-11 * T3 - 4.29065810e-15 * T4 + 3.48530149e+04 * invT) * + 0.0333000333000333; + // species 20: NH2OH + result += + y[20] * + (+2.88112502e+00 + 4.07854224e-03 * T - 9.42051920e-07 * T2 + + 1.09482733e-10 * T3 - 5.05449208e-15 * T4 - 6.86018419e+03 * invT) * + 0.0302755071147442; + // species 21: HNOH + result += + y[21] * + (+2.98321933e+00 + 2.44423187e-03 * T - 5.50288790e-07 * T2 + + 6.38428615e-11 * T3 - 2.96617122e-15 * T4 + 1.05780106e+04 * invT) * + 0.0312285303853601; + // species 22: NH3 + result += + y[22] * + (+1.36074311e+00 + 3.15925073e-03 * T - 7.63222687e-07 * T2 + + 1.02941853e-10 * T3 - 5.81673574e-15 * T4 - 6.41596473e+03 * invT) * + 0.0587164582232400; + // species 23: N2H4 + result += + y[23] * + (+3.93957357e+00 + 4.37508594e-03 * T - 9.97996860e-07 * T2 + + 1.16819604e-10 * T3 - 5.46137198e-15 * T4 + 9.28265548e+03 * invT) * + 0.0312051426075017; + // species 24: N + result += + y[24] * + (+1.41594290e+00 + 8.74453250e-05 * T - 3.96745633e-08 * T2 + + 7.55656100e-12 * T3 - 4.07219660e-16 * T4 + 5.61337750e+04 * invT) * + 0.0713928749910759; + // species 25: NO3 + result += + y[25] * + (+6.48347702e+00 + 1.28886032e-03 * T - 3.36486103e-07 * T2 + + 4.30785157e-11 * T3 - 2.14308016e-15 * T4 + 6.12990474e+03 * invT) * + 0.0161279917424682; + // species 26: NH + result += + y[26] * + (+1.78372644e+00 + 6.64929440e-04 * T - 1.41595191e-07 * T2 + + 1.95873611e-11 * T3 - 1.10090262e-15 * T4 + 4.23461945e+04 * invT) * + 0.0666000666000666; + // species 27: NNH + result += + y[27] * + (+2.42744423e+00 + 1.61647617e-03 * T - 3.90987663e-07 * T2 + + 4.76270890e-11 * T3 - 2.28983012e-15 * T4 + 2.87676026e+04 * invT) * + 0.0344566191165323; + // species 28: NH2 + result += + y[28] * + (+1.59263049e+00 + 1.73841799e-03 * T - 3.60905413e-07 * T2 + + 3.73356395e-11 * T3 - 1.15048237e-15 * T4 + 2.15737320e+04 * invT) * + 0.0624102852150034; + // species 29: H2NO + result += + y[29] * + (+2.75555914e+00 + 2.58109677e-03 * T - 5.87957957e-07 * T2 + + 6.87631730e-11 * T3 - 3.21286286e-15 * T4 + 6.51826177e+03 * invT) * + 0.0312285303853601; + // species 30: N2H3 + result += + y[30] * + (+3.04483566e+00 + 3.65565093e-03 * T - 8.25419330e-07 * T2 + + 9.59332552e-11 * T3 - 4.46215146e-15 * T4 + 2.53241420e+04 * invT) * + 0.0322185707842000; + } + + // species with midpoint at T=1380 kelvin + if (T < 1380) { + // species 18: N2H2 + result += + y[18] * + (+1.55589425e+00 + 3.27169540e-03 * T - 2.93982618e-07 * T2 - + 2.89928260e-10 * T3 + 7.94884460e-14 * T4 + 2.41085081e+04 * invT) * + 0.0333000333000333; + } else { + // species 18: N2H2 + result += + y[18] * + (+3.14686796e+00 + 2.40806157e-03 * T - 5.42496057e-07 * T2 + + 6.26390245e-11 * T3 - 2.88988376e-15 * T4 + 2.33444055e+04 * invT) * + 0.0333000333000333; + } + + const amrex::Real RT = 8.31446261815324e+07 * T; // R*T + + ubms = result * RT; +} + +// get mixture entropy in molar units +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKSBML( + const amrex::Real P, + const amrex::Real T, + const amrex::Real x[], + amrex::Real& sbml) +{ + amrex::Real result = 0; + // Log of normalized pressure in cgs units dynes/cm^2 by Patm + amrex::Real logPratio = log(P / 1013250.0); + amrex::Real sor[31]; // temporary storage + speciesEntropy(sor, T); + + // Compute Eq 42 + for (int id = 0; id < 31; ++id) { + result += x[id] * (sor[id] - log((x[id] + 1e-100)) - logPratio); + } + + sbml = result * 8.31446261815324e+07; +} + +// get mixture entropy in mass units +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKSBMS( + const amrex::Real P, + const amrex::Real T, + const amrex::Real y[], + amrex::Real& sbms) +{ + amrex::Real result = 0; + // Log of normalized pressure in cgs units dynes/cm^2 by Patm + amrex::Real logPratio = log(P / 1013250.0); + amrex::Real sor[31]; // temporary storage + amrex::Real x[31]; // need a ytx conversion + amrex::Real YOW = 0; // See Eq 4, 6 in CK Manual + + // Compute inverse of mean molecular wt first + for (int i = 0; i < 31; i++) { + YOW += y[i] * imw(i); + } + // Now compute y to x conversion + x[0] = y[0] / (39.950000 * YOW); + x[1] = y[1] / (28.014000 * YOW); + x[2] = y[2] / (4.002602 * YOW); + x[3] = y[3] / (2.016000 * YOW); + x[4] = y[4] / (1.008000 * YOW); + x[5] = y[5] / (31.998000 * YOW); + x[6] = y[6] / (15.999000 * YOW); + x[7] = y[7] / (18.015000 * YOW); + x[8] = y[8] / (17.007000 * YOW); + x[9] = y[9] / (34.014000 * YOW); + x[10] = y[10] / (33.006000 * YOW); + x[11] = y[11] / (30.006000 * YOW); + x[12] = y[12] / (44.013000 * YOW); + x[13] = y[13] / (46.005000 * YOW); + x[14] = y[14] / (31.014000 * YOW); + x[15] = y[15] / (47.013000 * YOW); + x[16] = y[16] / (47.013000 * YOW); + x[17] = y[17] / (63.012000 * YOW); + x[18] = y[18] / (30.030000 * YOW); + x[19] = y[19] / (30.030000 * YOW); + x[20] = y[20] / (33.030000 * YOW); + x[21] = y[21] / (32.022000 * YOW); + x[22] = y[22] / (17.031000 * YOW); + x[23] = y[23] / (32.046000 * YOW); + x[24] = y[24] / (14.007000 * YOW); + x[25] = y[25] / (62.004000 * YOW); + x[26] = y[26] / (15.015000 * YOW); + x[27] = y[27] / (29.022000 * YOW); + x[28] = y[28] / (16.023000 * YOW); + x[29] = y[29] / (32.022000 * YOW); + x[30] = y[30] / (31.038000 * YOW); + speciesEntropy(sor, T); + // Perform computation in Eq 42 and 43 + for (int i = 0; i < 31; i++) { + result += x[i] * (sor[i] - log((x[i] + 1e-100)) - logPratio); + } + // Scale by R/W + sbms = result * 8.31446261815324e+07 * YOW; +} + +// get temperature given internal energy in mass units and mass fracs +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +GET_T_GIVEN_EY( + const amrex::Real e, const amrex::Real y[], amrex::Real& t, int& ierr) +{ +#ifdef CONVERGENCE + const int maxiter = 5000; + const amrex::Real tol = 1.e-12; +#else + const int maxiter = 200; + const amrex::Real tol = 1.e-6; +#endif + amrex::Real tmin = 90; // max lower bound for thermo def + amrex::Real tmax = 4000; // min upper bound for thermo def + amrex::Real e1, emin, emax, cv, t1, dt; + CKUBMS(tmin, y, emin); + CKUBMS(tmax, y, emax); + if (e < emin) { + // Linear Extrapolation below tmin + CKCVBS(tmin, y, cv); + t = tmin - (emin - e) / cv; + ierr = 1; + return; + } + if (e > emax) { + // Linear Extrapolation above tmax + CKCVBS(tmax, y, cv); + t = tmax - (emax - e) / cv; + ierr = 1; + return; + } + t1 = t; + if (t1 < tmin || t1 > tmax) { + t1 = tmin + (tmax - tmin) / (emax - emin) * (e - emin); + } + for (int i = 0; i < maxiter; ++i) { + CKUBMS(t1, y, e1); + CKCVBS(t1, y, cv); + dt = (e - e1) / cv; + if (dt > 100.) { + dt = 100.; + } else if (dt < -100.) { + dt = -100.; + } else if (fabs(dt) < tol) { + break; + } + t1 += dt; + } + t = t1; + ierr = 0; +} + +// get temperature given enthalpy in mass units and mass fracs +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +GET_T_GIVEN_HY( + const amrex::Real h, const amrex::Real y[], amrex::Real& t, int& ierr) +{ +#ifdef CONVERGENCE + const int maxiter = 5000; + const amrex::Real tol = 1.e-12; +#else + const int maxiter = 200; + const amrex::Real tol = 1.e-6; +#endif + amrex::Real tmin = 90; // max lower bound for thermo def + amrex::Real tmax = 4000; // min upper bound for thermo def + amrex::Real h1, hmin, hmax, cp, t1, dt; + CKHBMS(tmin, y, hmin); + CKHBMS(tmax, y, hmax); + if (h < hmin) { + // Linear Extrapolation below tmin + CKCPBS(tmin, y, cp); + t = tmin - (hmin - h) / cp; + ierr = 1; + return; + } + if (h > hmax) { + // Linear Extrapolation above tmax + CKCPBS(tmax, y, cp); + t = tmax - (hmax - h) / cp; + ierr = 1; + return; + } + t1 = t; + if (t1 < tmin || t1 > tmax) { + t1 = tmin + (tmax - tmin) / (hmax - hmin) * (h - hmin); + } + for (int i = 0; i < maxiter; ++i) { + CKHBMS(t1, y, h1); + CKCPBS(t1, y, cp); + dt = (h - h1) / cp; + if (dt > 100.) { + dt = 100.; + } else if (dt < -100.) { + dt = -100.; + } else if (fabs(dt) < tol) { + break; + } + t1 += dt; + } + t = t1; + ierr = 0; +} + +// Compute P = rhoRT/W(x) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKPX( + const amrex::Real rho, + const amrex::Real T, + const amrex::Real x[], + amrex::Real& P) +{ + amrex::Real XW = 0; // To hold mean molecular wt + XW += x[0] * 39.950000; // AR + XW += x[1] * 28.014000; // N2 + XW += x[2] * 4.002602; // HE + XW += x[3] * 2.016000; // H2 + XW += x[4] * 1.008000; // H + XW += x[5] * 31.998000; // O2 + XW += x[6] * 15.999000; // O + XW += x[7] * 18.015000; // H2O + XW += x[8] * 17.007000; // OH + XW += x[9] * 34.014000; // H2O2 + XW += x[10] * 33.006000; // HO2 + XW += x[11] * 30.006000; // NO + XW += x[12] * 44.013000; // N2O + XW += x[13] * 46.005000; // NO2 + XW += x[14] * 31.014000; // HNO + XW += x[15] * 47.013000; // HNO2 + XW += x[16] * 47.013000; // HONO + XW += x[17] * 63.012000; // HONO2 + XW += x[18] * 30.030000; // N2H2 + XW += x[19] * 30.030000; // H2NN + XW += x[20] * 33.030000; // NH2OH + XW += x[21] * 32.022000; // HNOH + XW += x[22] * 17.031000; // NH3 + XW += x[23] * 32.046000; // N2H4 + XW += x[24] * 14.007000; // N + XW += x[25] * 62.004000; // NO3 + XW += x[26] * 15.015000; // NH + XW += x[27] * 29.022000; // NNH + XW += x[28] * 16.023000; // NH2 + XW += x[29] * 32.022000; // H2NO + XW += x[30] * 31.038000; // N2H3 + P = rho * 8.31446261815324e+07 * T / XW; // P = rho*R*T/W +} + +// Compute P = rhoRT/W(y) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKPY( + const amrex::Real rho, + const amrex::Real T, + const amrex::Real y[], + amrex::Real& P) +{ + amrex::Real YOW = 0; // for computing mean MW + + for (int i = 0; i < 31; i++) { + YOW += y[i] * imw(i); + } + P = rho * 8.31446261815324e+07 * T * YOW; // P = rho*R*T/W +} + +// Compute P = rhoRT/W(c) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKPC( + const amrex::Real rho, + const amrex::Real T, + const amrex::Real c[], + amrex::Real& P) +{ + // See Eq 5 in CK Manual + amrex::Real W = 0; + amrex::Real sumC = 0; + W += c[0] * 39.950000; // AR + W += c[1] * 28.014000; // N2 + W += c[2] * 4.002602; // HE + W += c[3] * 2.016000; // H2 + W += c[4] * 1.008000; // H + W += c[5] * 31.998000; // O2 + W += c[6] * 15.999000; // O + W += c[7] * 18.015000; // H2O + W += c[8] * 17.007000; // OH + W += c[9] * 34.014000; // H2O2 + W += c[10] * 33.006000; // HO2 + W += c[11] * 30.006000; // NO + W += c[12] * 44.013000; // N2O + W += c[13] * 46.005000; // NO2 + W += c[14] * 31.014000; // HNO + W += c[15] * 47.013000; // HNO2 + W += c[16] * 47.013000; // HONO + W += c[17] * 63.012000; // HONO2 + W += c[18] * 30.030000; // N2H2 + W += c[19] * 30.030000; // H2NN + W += c[20] * 33.030000; // NH2OH + W += c[21] * 32.022000; // HNOH + W += c[22] * 17.031000; // NH3 + W += c[23] * 32.046000; // N2H4 + W += c[24] * 14.007000; // N + W += c[25] * 62.004000; // NO3 + W += c[26] * 15.015000; // NH + W += c[27] * 29.022000; // NNH + W += c[28] * 16.023000; // NH2 + W += c[29] * 32.022000; // H2NO + W += c[30] * 31.038000; // N2H3 + + for (int id = 0; id < 31; ++id) { + sumC += c[id]; + } + P = rho * 8.31446261815324e+07 * T * sumC / W; // P = rho*R*T/W +} + +// Compute rho = PW(x)/RT +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKRHOX( + const amrex::Real P, + const amrex::Real T, + const amrex::Real x[], + amrex::Real& rho) +{ + amrex::Real XW = 0; // To hold mean molecular wt + XW += x[0] * 39.950000; // AR + XW += x[1] * 28.014000; // N2 + XW += x[2] * 4.002602; // HE + XW += x[3] * 2.016000; // H2 + XW += x[4] * 1.008000; // H + XW += x[5] * 31.998000; // O2 + XW += x[6] * 15.999000; // O + XW += x[7] * 18.015000; // H2O + XW += x[8] * 17.007000; // OH + XW += x[9] * 34.014000; // H2O2 + XW += x[10] * 33.006000; // HO2 + XW += x[11] * 30.006000; // NO + XW += x[12] * 44.013000; // N2O + XW += x[13] * 46.005000; // NO2 + XW += x[14] * 31.014000; // HNO + XW += x[15] * 47.013000; // HNO2 + XW += x[16] * 47.013000; // HONO + XW += x[17] * 63.012000; // HONO2 + XW += x[18] * 30.030000; // N2H2 + XW += x[19] * 30.030000; // H2NN + XW += x[20] * 33.030000; // NH2OH + XW += x[21] * 32.022000; // HNOH + XW += x[22] * 17.031000; // NH3 + XW += x[23] * 32.046000; // N2H4 + XW += x[24] * 14.007000; // N + XW += x[25] * 62.004000; // NO3 + XW += x[26] * 15.015000; // NH + XW += x[27] * 29.022000; // NNH + XW += x[28] * 16.023000; // NH2 + XW += x[29] * 32.022000; // H2NO + XW += x[30] * 31.038000; // N2H3 + rho = P * XW / (8.31446261815324e+07 * T); // rho = P*W/(R*T) +} + +// Compute rho = P*W(y)/RT +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKRHOY( + const amrex::Real P, + const amrex::Real T, + const amrex::Real y[], + amrex::Real& rho) +{ + amrex::Real YOW = 0; + + for (int i = 0; i < 31; i++) { + YOW += y[i] * imw(i); + } + + rho = P / (8.31446261815324e+07 * T * YOW); // rho = P*W/(R*T) +} + +// Compute rho = P*W(c)/(R*T) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKRHOC( + const amrex::Real P, + const amrex::Real T, + const amrex::Real c[], + amrex::Real& rho) +{ + // See Eq 5 in CK Manual + amrex::Real W = 0; + amrex::Real sumC = 0; + W += c[0] * 39.950000; // AR + W += c[1] * 28.014000; // N2 + W += c[2] * 4.002602; // HE + W += c[3] * 2.016000; // H2 + W += c[4] * 1.008000; // H + W += c[5] * 31.998000; // O2 + W += c[6] * 15.999000; // O + W += c[7] * 18.015000; // H2O + W += c[8] * 17.007000; // OH + W += c[9] * 34.014000; // H2O2 + W += c[10] * 33.006000; // HO2 + W += c[11] * 30.006000; // NO + W += c[12] * 44.013000; // N2O + W += c[13] * 46.005000; // NO2 + W += c[14] * 31.014000; // HNO + W += c[15] * 47.013000; // HNO2 + W += c[16] * 47.013000; // HONO + W += c[17] * 63.012000; // HONO2 + W += c[18] * 30.030000; // N2H2 + W += c[19] * 30.030000; // H2NN + W += c[20] * 33.030000; // NH2OH + W += c[21] * 32.022000; // HNOH + W += c[22] * 17.031000; // NH3 + W += c[23] * 32.046000; // N2H4 + W += c[24] * 14.007000; // N + W += c[25] * 62.004000; // NO3 + W += c[26] * 15.015000; // NH + W += c[27] * 29.022000; // NNH + W += c[28] * 16.023000; // NH2 + W += c[29] * 32.022000; // H2NO + W += c[30] * 31.038000; // N2H3 + + for (int id = 0; id < 31; ++id) { + sumC += c[id]; + } + rho = P * W / (sumC * T * 8.31446261815324e+07); // rho = PW/(R*T) +} + +// get molecular weight for all species +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKWT(amrex::Real wt[]) +{ + get_mw(wt); +} + +// given y[species]: mass fractions +// s mean molecular weight (gm/mole) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKMMWY(const amrex::Real y[], amrex::Real& wtm) +{ + amrex::Real YOW = 0; + + for (int i = 0; i < 31; i++) { + YOW += y[i] * imw(i); + } + + wtm = 1.0 / YOW; +} + +// given x[species]: mole fractions +// returns mean molecular weight (gm/mole) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKMMWX(const amrex::Real x[], amrex::Real& wtm) +{ + amrex::Real XW = 0; // see Eq 4 in CK Manual + XW += x[0] * 39.950000; // AR + XW += x[1] * 28.014000; // N2 + XW += x[2] * 4.002602; // HE + XW += x[3] * 2.016000; // H2 + XW += x[4] * 1.008000; // H + XW += x[5] * 31.998000; // O2 + XW += x[6] * 15.999000; // O + XW += x[7] * 18.015000; // H2O + XW += x[8] * 17.007000; // OH + XW += x[9] * 34.014000; // H2O2 + XW += x[10] * 33.006000; // HO2 + XW += x[11] * 30.006000; // NO + XW += x[12] * 44.013000; // N2O + XW += x[13] * 46.005000; // NO2 + XW += x[14] * 31.014000; // HNO + XW += x[15] * 47.013000; // HNO2 + XW += x[16] * 47.013000; // HONO + XW += x[17] * 63.012000; // HONO2 + XW += x[18] * 30.030000; // N2H2 + XW += x[19] * 30.030000; // H2NN + XW += x[20] * 33.030000; // NH2OH + XW += x[21] * 32.022000; // HNOH + XW += x[22] * 17.031000; // NH3 + XW += x[23] * 32.046000; // N2H4 + XW += x[24] * 14.007000; // N + XW += x[25] * 62.004000; // NO3 + XW += x[26] * 15.015000; // NH + XW += x[27] * 29.022000; // NNH + XW += x[28] * 16.023000; // NH2 + XW += x[29] * 32.022000; // H2NO + XW += x[30] * 31.038000; // N2H3 + wtm = XW; +} + +// given c[species]: molar concentration +// returns mean molecular weight (gm/mole) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKMMWC(const amrex::Real c[], amrex::Real& wtm) +{ + // See Eq 5 in CK Manual + amrex::Real W = 0; + amrex::Real sumC = 0; + W += c[0] * 39.950000; // AR + W += c[1] * 28.014000; // N2 + W += c[2] * 4.002602; // HE + W += c[3] * 2.016000; // H2 + W += c[4] * 1.008000; // H + W += c[5] * 31.998000; // O2 + W += c[6] * 15.999000; // O + W += c[7] * 18.015000; // H2O + W += c[8] * 17.007000; // OH + W += c[9] * 34.014000; // H2O2 + W += c[10] * 33.006000; // HO2 + W += c[11] * 30.006000; // NO + W += c[12] * 44.013000; // N2O + W += c[13] * 46.005000; // NO2 + W += c[14] * 31.014000; // HNO + W += c[15] * 47.013000; // HNO2 + W += c[16] * 47.013000; // HONO + W += c[17] * 63.012000; // HONO2 + W += c[18] * 30.030000; // N2H2 + W += c[19] * 30.030000; // H2NN + W += c[20] * 33.030000; // NH2OH + W += c[21] * 32.022000; // HNOH + W += c[22] * 17.031000; // NH3 + W += c[23] * 32.046000; // N2H4 + W += c[24] * 14.007000; // N + W += c[25] * 62.004000; // NO3 + W += c[26] * 15.015000; // NH + W += c[27] * 29.022000; // NNH + W += c[28] * 16.023000; // NH2 + W += c[29] * 32.022000; // H2NO + W += c[30] * 31.038000; // N2H3 + + for (int id = 0; id < 31; ++id) { + sumC += c[id]; + } + // CK provides no guard against division by zero + wtm = W / sumC; +} + +// get Cp/R as a function of T +// for all species (Eq 19) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKCPOR(const amrex::Real T, amrex::Real cpor[]) +{ + cp_R(cpor, T); +} + +// get H/RT as a function of T +// for all species (Eq 20) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKHORT(const amrex::Real T, amrex::Real hort[]) +{ + speciesEnthalpy(hort, T); +} + +// get S/R as a function of T +// for all species (Eq 21) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKSOR(const amrex::Real T, amrex::Real sor[]) +{ + speciesEntropy(sor, T); +} + +// convert y[species] (mass fracs) to x[species] (mole fracs) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKYTX(const amrex::Real y[], amrex::Real x[]) +{ + amrex::Real YOW = 0; + + for (int i = 0; i < 31; i++) { + YOW += y[i] * imw(i); + } + + amrex::Real YOWINV = 1.0 / YOW; + + for (int i = 0; i < 31; i++) { + x[i] = y[i] * imw(i) * YOWINV; + } +} + +// convert y[species] (mass fracs) to c[species] (molar conc) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKYTCP( + const amrex::Real P, + const amrex::Real T, + const amrex::Real y[], + amrex::Real c[]) +{ + amrex::Real YOW = 0; + amrex::Real PWORT; + + // Compute inverse of mean molecular wt first + for (int i = 0; i < 31; i++) { + c[i] = y[i] * imw(i); + } + for (int i = 0; i < 31; i++) { + YOW += c[i]; + } + + // PW/RT (see Eq. 7) + PWORT = P / (YOW * 8.31446261815324e+07 * T); + // Now compute conversion + + for (int i = 0; i < 31; i++) { + c[i] = PWORT * y[i] * imw(i); + } +} + +// convert y[species] (mass fracs) to c[species] (molar conc) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKYTCR( + const amrex::Real rho, + amrex::Real /*T*/, + const amrex::Real y[], + amrex::Real c[]) +{ + + for (int i = 0; i < 31; i++) { + c[i] = rho * y[i] * imw(i); + } +} + +// convert x[species] (mole fracs) to y[species] (mass fracs) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKXTY(const amrex::Real x[], amrex::Real y[]) +{ + amrex::Real XW = 0; // See Eq 4, 9 in CK Manual + // Compute mean molecular wt first + XW += x[0] * 39.950000; // AR + XW += x[1] * 28.014000; // N2 + XW += x[2] * 4.002602; // HE + XW += x[3] * 2.016000; // H2 + XW += x[4] * 1.008000; // H + XW += x[5] * 31.998000; // O2 + XW += x[6] * 15.999000; // O + XW += x[7] * 18.015000; // H2O + XW += x[8] * 17.007000; // OH + XW += x[9] * 34.014000; // H2O2 + XW += x[10] * 33.006000; // HO2 + XW += x[11] * 30.006000; // NO + XW += x[12] * 44.013000; // N2O + XW += x[13] * 46.005000; // NO2 + XW += x[14] * 31.014000; // HNO + XW += x[15] * 47.013000; // HNO2 + XW += x[16] * 47.013000; // HONO + XW += x[17] * 63.012000; // HONO2 + XW += x[18] * 30.030000; // N2H2 + XW += x[19] * 30.030000; // H2NN + XW += x[20] * 33.030000; // NH2OH + XW += x[21] * 32.022000; // HNOH + XW += x[22] * 17.031000; // NH3 + XW += x[23] * 32.046000; // N2H4 + XW += x[24] * 14.007000; // N + XW += x[25] * 62.004000; // NO3 + XW += x[26] * 15.015000; // NH + XW += x[27] * 29.022000; // NNH + XW += x[28] * 16.023000; // NH2 + XW += x[29] * 32.022000; // H2NO + XW += x[30] * 31.038000; // N2H3 + // Now compute conversion + amrex::Real XWinv = 1.0 / XW; + y[0] = x[0] * 39.950000 * XWinv; + y[1] = x[1] * 28.014000 * XWinv; + y[2] = x[2] * 4.002602 * XWinv; + y[3] = x[3] * 2.016000 * XWinv; + y[4] = x[4] * 1.008000 * XWinv; + y[5] = x[5] * 31.998000 * XWinv; + y[6] = x[6] * 15.999000 * XWinv; + y[7] = x[7] * 18.015000 * XWinv; + y[8] = x[8] * 17.007000 * XWinv; + y[9] = x[9] * 34.014000 * XWinv; + y[10] = x[10] * 33.006000 * XWinv; + y[11] = x[11] * 30.006000 * XWinv; + y[12] = x[12] * 44.013000 * XWinv; + y[13] = x[13] * 46.005000 * XWinv; + y[14] = x[14] * 31.014000 * XWinv; + y[15] = x[15] * 47.013000 * XWinv; + y[16] = x[16] * 47.013000 * XWinv; + y[17] = x[17] * 63.012000 * XWinv; + y[18] = x[18] * 30.030000 * XWinv; + y[19] = x[19] * 30.030000 * XWinv; + y[20] = x[20] * 33.030000 * XWinv; + y[21] = x[21] * 32.022000 * XWinv; + y[22] = x[22] * 17.031000 * XWinv; + y[23] = x[23] * 32.046000 * XWinv; + y[24] = x[24] * 14.007000 * XWinv; + y[25] = x[25] * 62.004000 * XWinv; + y[26] = x[26] * 15.015000 * XWinv; + y[27] = x[27] * 29.022000 * XWinv; + y[28] = x[28] * 16.023000 * XWinv; + y[29] = x[29] * 32.022000 * XWinv; + y[30] = x[30] * 31.038000 * XWinv; +} + +// convert x[species] (mole fracs) to c[species] (molar conc) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKXTCP( + const amrex::Real P, + const amrex::Real T, + const amrex::Real x[], + amrex::Real c[]) +{ + amrex::Real PORT = P / (8.31446261815324e+07 * T); // P/RT + + // Compute conversion, see Eq 10 + for (int id = 0; id < 31; ++id) { + c[id] = x[id] * PORT; + } +} + +// convert x[species] (mole fracs) to c[species] (molar conc) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKXTCR( + const amrex::Real rho, + const amrex::Real /*T*/, + const amrex::Real x[], + amrex::Real c[]) +{ + amrex::Real XW = 0; // See Eq 4, 11 in CK Manual + amrex::Real ROW; + // Compute mean molecular wt first + XW += x[0] * 39.950000; // AR + XW += x[1] * 28.014000; // N2 + XW += x[2] * 4.002602; // HE + XW += x[3] * 2.016000; // H2 + XW += x[4] * 1.008000; // H + XW += x[5] * 31.998000; // O2 + XW += x[6] * 15.999000; // O + XW += x[7] * 18.015000; // H2O + XW += x[8] * 17.007000; // OH + XW += x[9] * 34.014000; // H2O2 + XW += x[10] * 33.006000; // HO2 + XW += x[11] * 30.006000; // NO + XW += x[12] * 44.013000; // N2O + XW += x[13] * 46.005000; // NO2 + XW += x[14] * 31.014000; // HNO + XW += x[15] * 47.013000; // HNO2 + XW += x[16] * 47.013000; // HONO + XW += x[17] * 63.012000; // HONO2 + XW += x[18] * 30.030000; // N2H2 + XW += x[19] * 30.030000; // H2NN + XW += x[20] * 33.030000; // NH2OH + XW += x[21] * 32.022000; // HNOH + XW += x[22] * 17.031000; // NH3 + XW += x[23] * 32.046000; // N2H4 + XW += x[24] * 14.007000; // N + XW += x[25] * 62.004000; // NO3 + XW += x[26] * 15.015000; // NH + XW += x[27] * 29.022000; // NNH + XW += x[28] * 16.023000; // NH2 + XW += x[29] * 32.022000; // H2NO + XW += x[30] * 31.038000; // N2H3 + ROW = rho / XW; + + // Compute conversion, see Eq 11 + for (int id = 0; id < 31; ++id) { + c[id] = x[id] * ROW; + } +} + +// convert c[species] (molar conc) to x[species] (mole fracs) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKCTX(const amrex::Real c[], amrex::Real x[]) +{ + amrex::Real sumC = 0; + + // compute sum of c + for (int id = 0; id < 31; ++id) { + sumC += c[id]; + } + + // See Eq 13 + amrex::Real sumCinv = 1.0 / sumC; + for (int id = 0; id < 31; ++id) { + x[id] = c[id] * sumCinv; + } +} + +// convert c[species] (molar conc) to y[species] (mass fracs) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKCTY(const amrex::Real c[], amrex::Real y[]) +{ + amrex::Real CW = 0; // See Eq 12 in CK Manual + // compute denominator in eq 12 first + CW += c[0] * 39.950000; // AR + CW += c[1] * 28.014000; // N2 + CW += c[2] * 4.002602; // HE + CW += c[3] * 2.016000; // H2 + CW += c[4] * 1.008000; // H + CW += c[5] * 31.998000; // O2 + CW += c[6] * 15.999000; // O + CW += c[7] * 18.015000; // H2O + CW += c[8] * 17.007000; // OH + CW += c[9] * 34.014000; // H2O2 + CW += c[10] * 33.006000; // HO2 + CW += c[11] * 30.006000; // NO + CW += c[12] * 44.013000; // N2O + CW += c[13] * 46.005000; // NO2 + CW += c[14] * 31.014000; // HNO + CW += c[15] * 47.013000; // HNO2 + CW += c[16] * 47.013000; // HONO + CW += c[17] * 63.012000; // HONO2 + CW += c[18] * 30.030000; // N2H2 + CW += c[19] * 30.030000; // H2NN + CW += c[20] * 33.030000; // NH2OH + CW += c[21] * 32.022000; // HNOH + CW += c[22] * 17.031000; // NH3 + CW += c[23] * 32.046000; // N2H4 + CW += c[24] * 14.007000; // N + CW += c[25] * 62.004000; // NO3 + CW += c[26] * 15.015000; // NH + CW += c[27] * 29.022000; // NNH + CW += c[28] * 16.023000; // NH2 + CW += c[29] * 32.022000; // H2NO + CW += c[30] * 31.038000; // N2H3 + // Now compute conversion + amrex::Real CWinv = 1.0 / CW; + y[0] = c[0] * 39.950000 * CWinv; + y[1] = c[1] * 28.014000 * CWinv; + y[2] = c[2] * 4.002602 * CWinv; + y[3] = c[3] * 2.016000 * CWinv; + y[4] = c[4] * 1.008000 * CWinv; + y[5] = c[5] * 31.998000 * CWinv; + y[6] = c[6] * 15.999000 * CWinv; + y[7] = c[7] * 18.015000 * CWinv; + y[8] = c[8] * 17.007000 * CWinv; + y[9] = c[9] * 34.014000 * CWinv; + y[10] = c[10] * 33.006000 * CWinv; + y[11] = c[11] * 30.006000 * CWinv; + y[12] = c[12] * 44.013000 * CWinv; + y[13] = c[13] * 46.005000 * CWinv; + y[14] = c[14] * 31.014000 * CWinv; + y[15] = c[15] * 47.013000 * CWinv; + y[16] = c[16] * 47.013000 * CWinv; + y[17] = c[17] * 63.012000 * CWinv; + y[18] = c[18] * 30.030000 * CWinv; + y[19] = c[19] * 30.030000 * CWinv; + y[20] = c[20] * 33.030000 * CWinv; + y[21] = c[21] * 32.022000 * CWinv; + y[22] = c[22] * 17.031000 * CWinv; + y[23] = c[23] * 32.046000 * CWinv; + y[24] = c[24] * 14.007000 * CWinv; + y[25] = c[25] * 62.004000 * CWinv; + y[26] = c[26] * 15.015000 * CWinv; + y[27] = c[27] * 29.022000 * CWinv; + y[28] = c[28] * 16.023000 * CWinv; + y[29] = c[29] * 32.022000 * CWinv; + y[30] = c[30] * 31.038000 * CWinv; +} + +// get specific heat at constant volume as a function +// of T for all species (molar units) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKCVML(const amrex::Real T, amrex::Real cvml[]) +{ + cv_R(cvml, T); + + // convert to chemkin units + for (int id = 0; id < 31; ++id) { + cvml[id] *= 8.31446261815324e+07; + } +} + +// get specific heat at constant pressure as a +// function of T for all species (molar units) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKCPML(const amrex::Real T, amrex::Real cpml[]) +{ + cp_R(cpml, T); + + // convert to chemkin units + for (int id = 0; id < 31; ++id) { + cpml[id] *= 8.31446261815324e+07; + } +} + +// get internal energy as a function +// of T for all species (molar units) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKUML(const amrex::Real T, amrex::Real uml[]) +{ + amrex::Real RT = 8.31446261815324e+07 * T; // R*T + speciesInternalEnergy(uml, T); + + // convert to chemkin units + for (int id = 0; id < 31; ++id) { + uml[id] *= RT; + } +} + +// get enthalpy as a function +// of T for all species (molar units) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKHML(const amrex::Real T, amrex::Real hml[]) +{ + amrex::Real RT = 8.31446261815324e+07 * T; // R*T + speciesEnthalpy(hml, T); + + // convert to chemkin units + for (int id = 0; id < 31; ++id) { + hml[id] *= RT; + } +} + +// Returns the standard-state entropies in molar units +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKSML(const amrex::Real T, amrex::Real sml[]) +{ + speciesEntropy(sml, T); + + // convert to chemkin units + for (int id = 0; id < 31; ++id) { + sml[id] *= 8.31446261815324e+07; + } +} + +// Returns the specific heats at constant volume +// in mass units (Eq. 29) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKCVMS(const amrex::Real T, amrex::Real cvms[]) +{ + cv_R(cvms, T); + // multiply by R/molecularweight + cvms[0] *= 2.081217176008320e+06; // AR + cvms[1] *= 2.967966951578939e+06; // N2 + cvms[2] *= 2.077264394049980e+07; // HE + cvms[3] *= 4.124237409798234e+07; // H2 + cvms[4] *= 8.248474819596468e+07; // H + cvms[5] *= 2.598431970171023e+06; // O2 + cvms[6] *= 5.196863940342046e+06; // O + cvms[7] *= 4.615299815794193e+06; // H2O + cvms[8] *= 4.888847308845322e+06; // OH + cvms[9] *= 2.444423654422661e+06; // H2O2 + cvms[10] *= 2.519076112874398e+06; // HO2 + cvms[11] *= 2.770933352713870e+06; // NO + cvms[12] *= 1.889092454082485e+06; // N2O + cvms[13] *= 1.807295428356318e+06; // NO2 + cvms[14] *= 2.680873998243773e+06; // HNO + cvms[15] *= 1.768545427467560e+06; // HNO2 + cvms[16] *= 1.768545427467560e+06; // HONO + cvms[17] *= 1.319504636918879e+06; // HONO2 + cvms[18] *= 2.768718820563850e+06; // N2H2 + cvms[19] *= 2.768718820563850e+06; // H2NN + cvms[20] *= 2.517245721511729e+06; // NH2OH + cvms[21] *= 2.596484485089389e+06; // HNOH + cvms[22] *= 4.881957969674852e+06; // NH3 + cvms[23] *= 2.594539917042139e+06; // N2H4 + cvms[24] *= 5.935933903157878e+06; // N + cvms[25] *= 1.340955844486362e+06; // NO3 + cvms[26] *= 5.537437641127699e+06; // NH + cvms[27] *= 2.864882715923520e+06; // NNH + cvms[28] *= 5.189079834084279e+06; // NH2 + cvms[29] *= 2.596484485089389e+06; // H2NO + cvms[30] *= 2.678801023955551e+06; // N2H3 +} + +// Returns the specific heats at constant pressure +// in mass units (Eq. 26) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKCPMS(const amrex::Real T, amrex::Real cpms[]) +{ + cp_R(cpms, T); + // multiply by R/molecularweight + cpms[0] *= 2.081217176008320e+06; // AR + cpms[1] *= 2.967966951578939e+06; // N2 + cpms[2] *= 2.077264394049980e+07; // HE + cpms[3] *= 4.124237409798234e+07; // H2 + cpms[4] *= 8.248474819596468e+07; // H + cpms[5] *= 2.598431970171023e+06; // O2 + cpms[6] *= 5.196863940342046e+06; // O + cpms[7] *= 4.615299815794193e+06; // H2O + cpms[8] *= 4.888847308845322e+06; // OH + cpms[9] *= 2.444423654422661e+06; // H2O2 + cpms[10] *= 2.519076112874398e+06; // HO2 + cpms[11] *= 2.770933352713870e+06; // NO + cpms[12] *= 1.889092454082485e+06; // N2O + cpms[13] *= 1.807295428356318e+06; // NO2 + cpms[14] *= 2.680873998243773e+06; // HNO + cpms[15] *= 1.768545427467560e+06; // HNO2 + cpms[16] *= 1.768545427467560e+06; // HONO + cpms[17] *= 1.319504636918879e+06; // HONO2 + cpms[18] *= 2.768718820563850e+06; // N2H2 + cpms[19] *= 2.768718820563850e+06; // H2NN + cpms[20] *= 2.517245721511729e+06; // NH2OH + cpms[21] *= 2.596484485089389e+06; // HNOH + cpms[22] *= 4.881957969674852e+06; // NH3 + cpms[23] *= 2.594539917042139e+06; // N2H4 + cpms[24] *= 5.935933903157878e+06; // N + cpms[25] *= 1.340955844486362e+06; // NO3 + cpms[26] *= 5.537437641127699e+06; // NH + cpms[27] *= 2.864882715923520e+06; // NNH + cpms[28] *= 5.189079834084279e+06; // NH2 + cpms[29] *= 2.596484485089389e+06; // H2NO + cpms[30] *= 2.678801023955551e+06; // N2H3 +} + +// Returns internal energy in mass units (Eq 30.) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKUMS(const amrex::Real T, amrex::Real ums[]) +{ + amrex::Real RT = 8.31446261815324e+07 * T; // R*T + + speciesInternalEnergy(ums, T); + + for (int i = 0; i < 31; i++) { + ums[i] *= RT * imw(i); + } +} + +// Returns enthalpy in mass units (Eq 27.) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKHMS(const amrex::Real T, amrex::Real hms[]) +{ + amrex::Real RT = 8.31446261815324e+07 * T; // R*T + + speciesEnthalpy(hms, T); + + for (int i = 0; i < 31; i++) { + hms[i] *= RT * imw(i); + } +} + +// Returns the entropies in mass units (Eq 28.) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKSMS(const amrex::Real T, amrex::Real sms[]) +{ + speciesEntropy(sms, T); + // multiply by R/molecularweight + sms[0] *= 2.081217176008320e+06; // AR + sms[1] *= 2.967966951578939e+06; // N2 + sms[2] *= 2.077264394049980e+07; // HE + sms[3] *= 4.124237409798234e+07; // H2 + sms[4] *= 8.248474819596468e+07; // H + sms[5] *= 2.598431970171023e+06; // O2 + sms[6] *= 5.196863940342046e+06; // O + sms[7] *= 4.615299815794193e+06; // H2O + sms[8] *= 4.888847308845322e+06; // OH + sms[9] *= 2.444423654422661e+06; // H2O2 + sms[10] *= 2.519076112874398e+06; // HO2 + sms[11] *= 2.770933352713870e+06; // NO + sms[12] *= 1.889092454082485e+06; // N2O + sms[13] *= 1.807295428356318e+06; // NO2 + sms[14] *= 2.680873998243773e+06; // HNO + sms[15] *= 1.768545427467560e+06; // HNO2 + sms[16] *= 1.768545427467560e+06; // HONO + sms[17] *= 1.319504636918879e+06; // HONO2 + sms[18] *= 2.768718820563850e+06; // N2H2 + sms[19] *= 2.768718820563850e+06; // H2NN + sms[20] *= 2.517245721511729e+06; // NH2OH + sms[21] *= 2.596484485089389e+06; // HNOH + sms[22] *= 4.881957969674852e+06; // NH3 + sms[23] *= 2.594539917042139e+06; // N2H4 + sms[24] *= 5.935933903157878e+06; // N + sms[25] *= 1.340955844486362e+06; // NO3 + sms[26] *= 5.537437641127699e+06; // NH + sms[27] *= 2.864882715923520e+06; // NNH + sms[28] *= 5.189079834084279e+06; // NH2 + sms[29] *= 2.596484485089389e+06; // H2NO + sms[30] *= 2.678801023955551e+06; // N2H3 +} + +// GPU version of productionRate: no more use of thermo namespace vectors +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +comp_qfqr( + amrex::Real* qf, + amrex::Real* qr, + const amrex::Real* sc, + const amrex::Real* /*sc_qss*/, + const amrex::Real T, + const amrex::Real invT, + const amrex::Real logT) +{ + + // reaction 8: H2O2 (+M) <=> 2 OH (+M) + qf[0] = sc[9]; + qr[0] = (sc[8] * sc[8]); + + // reaction 21: H + O2 (+M) <=> HO2 (+M) + qf[1] = sc[4] * sc[5]; + qr[1] = sc[10]; + + // reaction 47: NH2OH (+M) <=> NH2 + OH (+M) + qf[2] = sc[20]; + qr[2] = sc[8] * sc[28]; + + // reaction 140: NO + O (+M) <=> NO2 (+M) + qf[3] = sc[6] * sc[11]; + qr[3] = sc[13]; + + // reaction 182: NO2 + O (+M) <=> NO3 (+M) + qf[4] = sc[6] * sc[13]; + qr[4] = sc[25]; + + // reaction 201: NO2 + OH (+M) <=> HONO2 (+M) + qf[5] = sc[8] * sc[13]; + qr[5] = sc[17]; + + // reaction 187: N2O (+M) <=> N2 + O (+M) + qf[6] = sc[12]; + qr[6] = sc[1] * sc[6]; + + // reaction 0: H2 + M <=> 2 H + M + qf[7] = sc[3]; + qr[7] = (sc[4] * sc[4]); + + // reaction 3: 2 O + M <=> O2 + M + qf[8] = (sc[6] * sc[6]); + qr[8] = sc[5]; + + // reaction 5: H + OH + M <=> H2O + M + qf[9] = sc[4] * sc[8]; + qr[9] = sc[7]; + + // reaction 7: H + O + M <=> OH + M + qf[10] = sc[4] * sc[6]; + qr[10] = sc[8]; + + // reaction 22: O + OH + M <=> HO2 + M + qf[11] = sc[6] * sc[8]; + qr[11] = sc[10]; + + // reaction 60: HNOH + M <=> H + HNO + M + qf[12] = sc[21]; + qr[12] = sc[4] * sc[14]; + + // reaction 163: H2NO + M <=> H + HNO + M + qf[13] = sc[29]; + qr[13] = sc[4] * sc[14]; + + // reaction 177: NO3 + NO2 => NO + O2 + NO2 + qf[14] = sc[13] * sc[25]; + qr[14] = 0.0; + + // reaction 1: H2 + O <=> H + OH + qf[15] = sc[3] * sc[6]; + qr[15] = sc[4] * sc[8]; + + // reaction 2: H2 + OH <=> H + H2O + qf[16] = sc[3] * sc[8]; + qr[16] = sc[4] * sc[7]; + + // reaction 4: H + O2 <=> O + OH + qf[17] = sc[4] * sc[5]; + qr[17] = sc[6] * sc[8]; + + // reaction 6: H2O + O <=> 2 OH + qf[18] = sc[6] * sc[7]; + qr[18] = (sc[8] * sc[8]); + + // reaction 9: H + H2O2 <=> H2O + OH + qf[19] = sc[4] * sc[9]; + qr[19] = sc[7] * sc[8]; + + // reaction 10: H + H2O2 <=> H2 + HO2 + qf[20] = sc[4] * sc[9]; + qr[20] = sc[3] * sc[10]; + + // reaction 11: H2O2 + O <=> HO2 + OH + qf[21] = sc[6] * sc[9]; + qr[21] = sc[8] * sc[10]; + + // reaction 12: H2O2 + OH <=> H2O + HO2 + qf[22] = sc[8] * sc[9]; + qr[22] = sc[7] * sc[10]; + + // reaction 13: H2O2 + OH <=> H2O + HO2 + qf[23] = sc[8] * sc[9]; + qr[23] = sc[7] * sc[10]; + + // reaction 14: H + HO2 <=> 2 OH + qf[24] = sc[4] * sc[10]; + qr[24] = (sc[8] * sc[8]); + + // reaction 15: H + HO2 <=> H2 + O2 + qf[25] = sc[4] * sc[10]; + qr[25] = sc[3] * sc[5]; + + // reaction 16: HO2 + O <=> O2 + OH + qf[26] = sc[6] * sc[10]; + qr[26] = sc[5] * sc[8]; + + // reaction 17: HO2 + OH <=> H2O + O2 + qf[27] = sc[8] * sc[10]; + qr[27] = sc[5] * sc[7]; + + // reaction 18: HO2 + OH <=> H2O + O2 + qf[28] = sc[8] * sc[10]; + qr[28] = sc[5] * sc[7]; + + // reaction 19: 2 HO2 <=> H2O2 + O2 + qf[29] = (sc[10] * sc[10]); + qr[29] = sc[5] * sc[9]; + + // reaction 20: 2 HO2 <=> H2O2 + O2 + qf[30] = (sc[10] * sc[10]); + qr[30] = sc[5] * sc[9]; + + // reaction 23: NH3 <=> H + NH2 + qf[31] = sc[22]; + qr[31] = sc[4] * sc[28]; + + // reaction 24: H + NH2 <=> H2 + NH + qf[32] = sc[4] * sc[28]; + qr[32] = sc[3] * sc[26]; + + // reaction 25: H + NH3 <=> H2 + NH2 + qf[33] = sc[4] * sc[22]; + qr[33] = sc[3] * sc[28]; + + // reaction 26: NH3 + OH <=> H2O + NH2 + qf[34] = sc[8] * sc[22]; + qr[34] = sc[7] * sc[28]; + + // reaction 27: NH3 + O <=> NH2 + OH + qf[35] = sc[6] * sc[22]; + qr[35] = sc[8] * sc[28]; + + // reaction 28: HO2 + NH3 <=> H2O2 + NH2 + qf[36] = sc[10] * sc[22]; + qr[36] = sc[9] * sc[28]; + + // reaction 29: NH3 + O2 <=> HO2 + NH2 + qf[37] = sc[5] * sc[22]; + qr[37] = sc[10] * sc[28]; + + // reaction 30: NH2 + O <=> H + HNO + qf[38] = sc[6] * sc[28]; + qr[38] = sc[4] * sc[14]; + + // reaction 31: NH2 + O <=> H + HNO + qf[39] = sc[6] * sc[28]; + qr[39] = sc[4] * sc[14]; + + // reaction 32: NH2 + O <=> NH + OH + qf[40] = sc[6] * sc[28]; + qr[40] = sc[8] * sc[26]; + + // reaction 33: NH2 + O <=> NH + OH + qf[41] = sc[6] * sc[28]; + qr[41] = sc[8] * sc[26]; + + // reaction 34: NH2 + OH <=> H2O + NH + qf[42] = sc[8] * sc[28]; + qr[42] = sc[7] * sc[26]; + + // reaction 35: NH2 + O2 <=> HNO + OH + qf[43] = sc[5] * sc[28]; + qr[43] = sc[8] * sc[14]; + + // reaction 36: NH2 + O2 <=> H2NO + O + qf[44] = sc[5] * sc[28]; + qr[44] = sc[6] * sc[29]; + + // reaction 37: HO2 + NH2 <=> H2NO + OH + qf[45] = sc[10] * sc[28]; + qr[45] = sc[8] * sc[29]; + + // reaction 38: NH + NH2 <=> H + N2H2 + qf[46] = sc[26] * sc[28]; + qr[46] = sc[4] * sc[18]; + + // reaction 39: NH + NH2 <=> N + NH3 + qf[47] = sc[26] * sc[28]; + qr[47] = sc[22] * sc[24]; + + // reaction 40: 2 NH <=> N + NH2 + qf[48] = (sc[26] * sc[26]); + qr[48] = sc[24] * sc[28]; + + // reaction 41: 2 NH => H2 + N2 + qf[49] = (sc[26] * sc[26]); + qr[49] = 0.0; + + // reaction 42: 2 NH => 2 H + N2 + qf[50] = (sc[26] * sc[26]); + qr[50] = 0.0; + + // reaction 43: 2 NH2 <=> NH + NH3 + qf[51] = (sc[28] * sc[28]); + qr[51] = sc[22] * sc[26]; + + // reaction 44: 2 NH2 <=> N2H4 + qf[52] = (sc[28] * sc[28]); + qr[52] = sc[23]; + + // reaction 45: 2 NH2 <=> H + N2H3 + qf[53] = (sc[28] * sc[28]); + qr[53] = sc[4] * sc[30]; + + // reaction 46: 2 NH2 <=> H2 + H2NN + qf[54] = (sc[28] * sc[28]); + qr[54] = sc[3] * sc[19]; + + // reaction 48: H + NH2OH <=> H2 + HNOH + qf[55] = sc[4] * sc[20]; + qr[55] = sc[3] * sc[21]; + + // reaction 49: H + NH2OH <=> H2 + H2NO + qf[56] = sc[4] * sc[20]; + qr[56] = sc[3] * sc[29]; + + // reaction 50: NH2OH + O <=> HNOH + OH + qf[57] = sc[6] * sc[20]; + qr[57] = sc[8] * sc[21]; + + // reaction 51: NH2OH + O <=> H2NO + OH + qf[58] = sc[6] * sc[20]; + qr[58] = sc[8] * sc[29]; + + // reaction 52: NH2OH + OH <=> H2O + HNOH + qf[59] = sc[8] * sc[20]; + qr[59] = sc[7] * sc[21]; + + // reaction 53: NH2OH + OH <=> H2NO + H2O + qf[60] = sc[8] * sc[20]; + qr[60] = sc[7] * sc[29]; + + // reaction 54: NH2 + NH2OH <=> HNOH + NH3 + qf[61] = sc[20] * sc[28]; + qr[61] = sc[21] * sc[22]; + + // reaction 55: NH2 + NH2OH <=> H2NO + NH3 + qf[62] = sc[20] * sc[28]; + qr[62] = sc[22] * sc[29]; + + // reaction 56: NH + NH2OH <=> HNOH + NH2 + qf[63] = sc[20] * sc[26]; + qr[63] = sc[21] * sc[28]; + + // reaction 57: NH + NH2OH <=> H2NO + NH2 + qf[64] = sc[20] * sc[26]; + qr[64] = sc[28] * sc[29]; + + // reaction 58: HO2 + NH2OH <=> H2O2 + HNOH + qf[65] = sc[10] * sc[20]; + qr[65] = sc[9] * sc[21]; + + // reaction 59: HO2 + NH2OH <=> H2NO + H2O2 + qf[66] = sc[10] * sc[20]; + qr[66] = sc[9] * sc[29]; + + // reaction 61: HNOH + O2 <=> HNO + HO2 + qf[67] = sc[5] * sc[21]; + qr[67] = sc[10] * sc[14]; + + // reaction 62: H + HNOH <=> NH2 + OH + qf[68] = sc[4] * sc[21]; + qr[68] = sc[8] * sc[28]; + + // reaction 63: H + HNOH <=> H2 + HNO + qf[69] = sc[4] * sc[21]; + qr[69] = sc[3] * sc[14]; + + // reaction 64: HNOH + O <=> HNO + OH + qf[70] = sc[6] * sc[21]; + qr[70] = sc[8] * sc[14]; + + // reaction 65: HNOH + O <=> HNO + OH + qf[71] = sc[6] * sc[21]; + qr[71] = sc[8] * sc[14]; + + // reaction 66: HNOH + OH <=> H2O + HNO + qf[72] = sc[8] * sc[21]; + qr[72] = sc[7] * sc[14]; + + // reaction 67: HNOH + HO2 <=> H2O2 + HNO + qf[73] = sc[10] * sc[21]; + qr[73] = sc[9] * sc[14]; + + // reaction 68: HNOH + HO2 <=> NH2OH + O2 + qf[74] = sc[10] * sc[21]; + qr[74] = sc[5] * sc[20]; + + // reaction 69: HNOH + NH2 <=> HNO + NH3 + qf[75] = sc[21] * sc[28]; + qr[75] = sc[14] * sc[22]; + + // reaction 70: HNOH + NH2 <=> N2H3 + OH + qf[76] = sc[21] * sc[28]; + qr[76] = sc[8] * sc[30]; + + // reaction 71: HNOH + NH2 <=> H2NN + H2O + qf[77] = sc[21] * sc[28]; + qr[77] = sc[7] * sc[19]; + + // reaction 72: HNOH + NO2 <=> HNO + HONO + qf[78] = sc[13] * sc[21]; + qr[78] = sc[14] * sc[16]; + + // reaction 73: NH2 + NO2 <=> H2NO + NO + qf[79] = sc[13] * sc[28]; + qr[79] = sc[11] * sc[29]; + + // reaction 74: NH2 + NO2 <=> H2O + N2O + qf[80] = sc[13] * sc[28]; + qr[80] = sc[7] * sc[12]; + + // reaction 75: NH2 + NO <=> H2O + N2 + qf[81] = sc[11] * sc[28]; + qr[81] = sc[1] * sc[7]; + + // reaction 76: NH2 + NO <=> NNH + OH + qf[82] = sc[11] * sc[28]; + qr[82] = sc[8] * sc[27]; + + // reaction 77: H + NH <=> H2 + N + qf[83] = sc[4] * sc[26]; + qr[83] = sc[3] * sc[24]; + + // reaction 78: NH + O <=> H + NO + qf[84] = sc[6] * sc[26]; + qr[84] = sc[4] * sc[11]; + + // reaction 79: NH + OH <=> H + HNO + qf[85] = sc[8] * sc[26]; + qr[85] = sc[4] * sc[14]; + + // reaction 80: NH + OH <=> H2O + N + qf[86] = sc[8] * sc[26]; + qr[86] = sc[7] * sc[24]; + + // reaction 81: NH + O2 <=> HNO + O + qf[87] = sc[5] * sc[26]; + qr[87] = sc[6] * sc[14]; + + // reaction 82: NH + O2 <=> NO + OH + qf[88] = sc[5] * sc[26]; + qr[88] = sc[8] * sc[11]; + + // reaction 83: N + NH <=> H + N2 + qf[89] = sc[24] * sc[26]; + qr[89] = sc[1] * sc[4]; + + // reaction 84: NH + NO <=> H + N2O + qf[90] = sc[11] * sc[26]; + qr[90] = sc[4] * sc[12]; + + // reaction 85: NH + NO <=> N2 + OH + qf[91] = sc[11] * sc[26]; + qr[91] = sc[1] * sc[8]; + + // reaction 86: NH + NO2 <=> N2O + OH + qf[92] = sc[13] * sc[26]; + qr[92] = sc[8] * sc[12]; + + // reaction 87: NH + NO2 <=> HNO + NO + qf[93] = sc[13] * sc[26]; + qr[93] = sc[11] * sc[14]; + + // reaction 88: N + OH <=> H + NO + qf[94] = sc[8] * sc[24]; + qr[94] = sc[4] * sc[11]; + + // reaction 89: N + O2 <=> NO + O + qf[95] = sc[5] * sc[24]; + qr[95] = sc[6] * sc[11]; + + // reaction 90: N + NO <=> N2 + O + qf[96] = sc[11] * sc[24]; + qr[96] = sc[1] * sc[6]; + + // reaction 91: N2H4 <=> H2 + H2NN + qf[97] = sc[23]; + qr[97] = sc[3] * sc[19]; + + // reaction 92: H + N2H4 <=> H2 + N2H3 + qf[98] = sc[4] * sc[23]; + qr[98] = sc[3] * sc[30]; + + // reaction 93: N2H4 + O <=> N2H3 + OH + qf[99] = sc[6] * sc[23]; + qr[99] = sc[8] * sc[30]; + + // reaction 94: N2H4 + O <=> H2O + N2H2 + qf[100] = sc[6] * sc[23]; + qr[100] = sc[7] * sc[18]; + + // reaction 95: N2H4 + OH <=> H2O + N2H3 + qf[101] = sc[8] * sc[23]; + qr[101] = sc[7] * sc[30]; + + // reaction 96: N2H4 + NH2 <=> N2H3 + NH3 + qf[102] = sc[23] * sc[28]; + qr[102] = sc[22] * sc[30]; + + // reaction 97: N2H4 + NO <=> HNO + N2H3 + qf[103] = sc[11] * sc[23]; + qr[103] = sc[14] * sc[30]; + + // reaction 98: N2H4 + NO2 <=> HONO + N2H3 + qf[104] = sc[13] * sc[23]; + qr[104] = sc[16] * sc[30]; + + // reaction 99: N2H4 + NO2 <=> HNO2 + N2H3 + qf[105] = sc[13] * sc[23]; + qr[105] = sc[15] * sc[30]; + + // reaction 100: N2H3 <=> H + N2H2 + qf[106] = sc[30]; + qr[106] = sc[4] * sc[18]; + + // reaction 101: H + N2H3 <=> H2 + N2H2 + qf[107] = sc[4] * sc[30]; + qr[107] = sc[3] * sc[18]; + + // reaction 102: N2H3 + O <=> HNO + NH2 + qf[108] = sc[6] * sc[30]; + qr[108] = sc[14] * sc[28]; + + // reaction 103: N2H3 + O <=> N2H2 + OH + qf[109] = sc[6] * sc[30]; + qr[109] = sc[8] * sc[18]; + + // reaction 104: N2H3 + OH <=> H2O + N2H2 + qf[110] = sc[8] * sc[30]; + qr[110] = sc[7] * sc[18]; + + // reaction 105: N2H3 + OH <=> H2NN + H2O + qf[111] = sc[8] * sc[30]; + qr[111] = sc[7] * sc[19]; + + // reaction 106: N2H3 + NH2 <=> N2H2 + NH3 + qf[112] = sc[28] * sc[30]; + qr[112] = sc[18] * sc[22]; + + // reaction 107: N2H3 + NH2 <=> H2NN + NH3 + qf[113] = sc[28] * sc[30]; + qr[113] = sc[19] * sc[22]; + + // reaction 108: HO2 + N2H3 <=> H2O2 + N2H2 + qf[114] = sc[10] * sc[30]; + qr[114] = sc[9] * sc[18]; + + // reaction 109: HO2 + N2H3 <=> N2H4 + O2 + qf[115] = sc[10] * sc[30]; + qr[115] = sc[5] * sc[23]; + + // reaction 110: N2H2 <=> H + NNH + qf[116] = sc[18]; + qr[116] = sc[4] * sc[27]; + + // reaction 111: N2H2 <=> H + NNH + qf[117] = sc[18]; + qr[117] = sc[4] * sc[27]; + + // reaction 112: H + N2H2 <=> H2 + NNH + qf[118] = sc[4] * sc[18]; + qr[118] = sc[3] * sc[27]; + + // reaction 113: N2H2 + O <=> NNH + OH + qf[119] = sc[6] * sc[18]; + qr[119] = sc[8] * sc[27]; + + // reaction 114: N2H2 + OH <=> H2O + NNH + qf[120] = sc[8] * sc[18]; + qr[120] = sc[7] * sc[27]; + + // reaction 115: N2H2 + NO <=> N2O + NH2 + qf[121] = sc[11] * sc[18]; + qr[121] = sc[12] * sc[28]; + + // reaction 116: N2H2 + NH <=> NH2 + NNH + qf[122] = sc[18] * sc[26]; + qr[122] = sc[27] * sc[28]; + + // reaction 117: N2H2 + NH2 <=> NH3 + NNH + qf[123] = sc[18] * sc[28]; + qr[123] = sc[22] * sc[27]; + + // reaction 118: N2H2 <=> H2NN + qf[124] = sc[18]; + qr[124] = sc[19]; + + // reaction 119: H2NN <=> H + NNH + qf[125] = sc[19]; + qr[125] = sc[4] * sc[27]; + + // reaction 120: H2NN <=> H + NNH + qf[126] = sc[19]; + qr[126] = sc[4] * sc[27]; + + // reaction 121: H2NN + O2 <=> NH2 + NO2 + qf[127] = sc[5] * sc[19]; + qr[127] = sc[13] * sc[28]; + + // reaction 122: H + H2NN <=> H + N2H2 + qf[128] = sc[4] * sc[19]; + qr[128] = sc[4] * sc[18]; + + // reaction 123: H + H2NN <=> H2 + NNH + qf[129] = sc[4] * sc[19]; + qr[129] = sc[3] * sc[27]; + + // reaction 124: H2NN + O <=> NH2 + NO + qf[130] = sc[6] * sc[19]; + qr[130] = sc[11] * sc[28]; + + // reaction 125: H2NN + O <=> NNH + OH + qf[131] = sc[6] * sc[19]; + qr[131] = sc[8] * sc[27]; + + // reaction 126: H2NN + OH <=> H2O + NNH + qf[132] = sc[8] * sc[19]; + qr[132] = sc[7] * sc[27]; + + // reaction 127: H2NN + NH2 <=> NH3 + NNH + qf[133] = sc[19] * sc[28]; + qr[133] = sc[22] * sc[27]; + + // reaction 128: H2NN + HO2 <=> H2O2 + NNH + qf[134] = sc[10] * sc[19]; + qr[134] = sc[9] * sc[27]; + + // reaction 129: NNH <=> H + N2 + qf[135] = sc[27]; + qr[135] = sc[1] * sc[4]; + + // reaction 130: H + NNH <=> H2 + N2 + qf[136] = sc[4] * sc[27]; + qr[136] = sc[1] * sc[3]; + + // reaction 131: NNH + O <=> H + N2O + qf[137] = sc[6] * sc[27]; + qr[137] = sc[4] * sc[12]; + + // reaction 132: NNH + O <=> NH + NO + qf[138] = sc[6] * sc[27]; + qr[138] = sc[11] * sc[26]; + + // reaction 133: NNH + O <=> N2 + OH + qf[139] = sc[6] * sc[27]; + qr[139] = sc[1] * sc[8]; + + // reaction 134: NNH + OH <=> H2O + N2 + qf[140] = sc[8] * sc[27]; + qr[140] = sc[1] * sc[7]; + + // reaction 135: NNH + O2 <=> HO2 + N2 + qf[141] = sc[5] * sc[27]; + qr[141] = sc[1] * sc[10]; + + // reaction 136: NH2 + NNH <=> N2 + NH3 + qf[142] = sc[27] * sc[28]; + qr[142] = sc[1] * sc[22]; + + // reaction 137: HO2 + NNH <=> H2O2 + N2 + qf[143] = sc[10] * sc[27]; + qr[143] = sc[1] * sc[9]; + + // reaction 138: NNH + NO <=> HNO + N2 + qf[144] = sc[11] * sc[27]; + qr[144] = sc[1] * sc[14]; + + // reaction 139: HO2 + NO <=> NO2 + OH + qf[145] = sc[10] * sc[11]; + qr[145] = sc[8] * sc[13]; + + // reaction 141: NO + OH <=> HONO + qf[146] = sc[8] * sc[11]; + qr[146] = sc[16]; + + // reaction 142: HNO <=> H + NO + qf[147] = sc[14]; + qr[147] = sc[4] * sc[11]; + + // reaction 143: H + HNO <=> H2 + NO + qf[148] = sc[4] * sc[14]; + qr[148] = sc[3] * sc[11]; + + // reaction 144: HNO + O <=> NO + OH + qf[149] = sc[6] * sc[14]; + qr[149] = sc[8] * sc[11]; + + // reaction 145: HNO + OH <=> H + HONO + qf[150] = sc[8] * sc[14]; + qr[150] = sc[4] * sc[16]; + + // reaction 146: HNO + OH <=> H2O + NO + qf[151] = sc[8] * sc[14]; + qr[151] = sc[7] * sc[11]; + + // reaction 147: HNO + O2 <=> HO2 + NO + qf[152] = sc[5] * sc[14]; + qr[152] = sc[10] * sc[11]; + + // reaction 148: HNO + NH2 <=> NH3 + NO + qf[153] = sc[14] * sc[28]; + qr[153] = sc[11] * sc[22]; + + // reaction 149: HNO + NO <=> N2O + OH + qf[154] = sc[11] * sc[14]; + qr[154] = sc[8] * sc[12]; + + // reaction 150: HNO + NO2 <=> HONO + NO + qf[155] = sc[13] * sc[14]; + qr[155] = sc[11] * sc[16]; + + // reaction 151: HNO + NO2 <=> HNO2 + NO + qf[156] = sc[13] * sc[14]; + qr[156] = sc[11] * sc[15]; + + // reaction 152: 2 HNO <=> H2O + N2O + qf[157] = (sc[14] * sc[14]); + qr[157] = sc[7] * sc[12]; + + // reaction 153: HNO + HO2 <=> HNO2 + OH + qf[158] = sc[10] * sc[14]; + qr[158] = sc[8] * sc[15]; + + // reaction 154: H + HONO <=> H2 + NO2 + qf[159] = sc[4] * sc[16]; + qr[159] = sc[3] * sc[13]; + + // reaction 155: H + HNO2 <=> H2 + NO2 + qf[160] = sc[4] * sc[15]; + qr[160] = sc[3] * sc[13]; + + // reaction 156: H + HONO <=> H2O + NO + qf[161] = sc[4] * sc[16]; + qr[161] = sc[7] * sc[11]; + + // reaction 157: HONO + O <=> NO2 + OH + qf[162] = sc[6] * sc[16]; + qr[162] = sc[8] * sc[13]; + + // reaction 158: HONO + OH <=> H2O + NO2 + qf[163] = sc[8] * sc[16]; + qr[163] = sc[7] * sc[13]; + + // reaction 159: HONO + NH <=> NH2 + NO2 + qf[164] = sc[16] * sc[26]; + qr[164] = sc[13] * sc[28]; + + // reaction 160: HONO + NH2 <=> NH3 + NO2 + qf[165] = sc[16] * sc[28]; + qr[165] = sc[13] * sc[22]; + + // reaction 161: 2 HONO => H2O + NO + NO2 + qf[166] = (sc[16] * sc[16]); + qr[166] = 0.0; + + // reaction 162: H2NO <=> HNOH + qf[167] = sc[29]; + qr[167] = sc[21]; + + // reaction 164: H + H2NO <=> H2 + HNO + qf[168] = sc[4] * sc[29]; + qr[168] = sc[3] * sc[14]; + + // reaction 165: H + H2NO <=> NH2 + OH + qf[169] = sc[4] * sc[29]; + qr[169] = sc[8] * sc[28]; + + // reaction 166: H2NO + O <=> HNO + OH + qf[170] = sc[6] * sc[29]; + qr[170] = sc[8] * sc[14]; + + // reaction 167: H2NO + OH <=> H2O + HNO + qf[171] = sc[8] * sc[29]; + qr[171] = sc[7] * sc[14]; + + // reaction 168: H2NO + NO <=> 2 HNO + qf[172] = sc[11] * sc[29]; + qr[172] = (sc[14] * sc[14]); + + // reaction 169: H2NO + NO2 <=> HNO + HONO + qf[173] = sc[13] * sc[29]; + qr[173] = sc[14] * sc[16]; + + // reaction 170: H2NO + NH2 <=> HNO + NH3 + qf[174] = sc[28] * sc[29]; + qr[174] = sc[14] * sc[22]; + + // reaction 171: H2NO + O2 <=> HNO + HO2 + qf[175] = sc[5] * sc[29]; + qr[175] = sc[10] * sc[14]; + + // reaction 172: H2NO + HO2 <=> H2O2 + HNO + qf[176] = sc[10] * sc[29]; + qr[176] = sc[9] * sc[14]; + + // reaction 173: H + NO3 <=> NO2 + OH + qf[177] = sc[4] * sc[25]; + qr[177] = sc[8] * sc[13]; + + // reaction 174: NO3 + O <=> NO2 + O2 + qf[178] = sc[6] * sc[25]; + qr[178] = sc[5] * sc[13]; + + // reaction 175: NO3 + OH <=> HO2 + NO2 + qf[179] = sc[8] * sc[25]; + qr[179] = sc[10] * sc[13]; + + // reaction 176: HO2 + NO3 => NO2 + O2 + OH + qf[180] = sc[10] * sc[25]; + qr[180] = 0.0; + + // reaction 178: NO3 <=> NO + O2 + qf[181] = sc[25]; + qr[181] = sc[5] * sc[11]; + + // reaction 179: 2 NO3 => 2 NO2 + O2 + qf[182] = (sc[25] * sc[25]); + qr[182] = 0.0; + + // reaction 180: H + NO2 <=> NO + OH + qf[183] = sc[4] * sc[13]; + qr[183] = sc[8] * sc[11]; + + // reaction 181: NO2 + O <=> NO + O2 + qf[184] = sc[6] * sc[13]; + qr[184] = sc[5] * sc[11]; + + // reaction 183: HO2 + NO2 <=> HONO + O2 + qf[185] = sc[10] * sc[13]; + qr[185] = sc[5] * sc[16]; + + // reaction 184: HO2 + NO2 <=> HNO2 + O2 + qf[186] = sc[10] * sc[13]; + qr[186] = sc[5] * sc[15]; + + // reaction 185: 2 NO2 => 2 NO + O2 + qf[187] = (sc[13] * sc[13]); + qr[187] = 0.0; + + // reaction 186: 2 NO2 <=> NO + NO3 + qf[188] = (sc[13] * sc[13]); + qr[188] = sc[11] * sc[25]; + + // reaction 188: H + N2O <=> N2 + OH + qf[189] = sc[4] * sc[12]; + qr[189] = sc[1] * sc[8]; + + // reaction 189: H + N2O <=> N2 + OH + qf[190] = sc[4] * sc[12]; + qr[190] = sc[1] * sc[8]; + + // reaction 190: N2O + O <=> 2 NO + qf[191] = sc[6] * sc[12]; + qr[191] = (sc[11] * sc[11]); + + // reaction 191: N2O + O <=> N2 + O2 + qf[192] = sc[6] * sc[12]; + qr[192] = sc[1] * sc[5]; + + // reaction 192: N2O + OH <=> HO2 + N2 + qf[193] = sc[8] * sc[12]; + qr[193] = sc[1] * sc[10]; + + // reaction 193: N2O + NO <=> N2 + NO2 + qf[194] = sc[11] * sc[12]; + qr[194] = sc[1] * sc[13]; + + // reaction 194: HNO2 + O <=> NO2 + OH + qf[195] = sc[6] * sc[15]; + qr[195] = sc[8] * sc[13]; + + // reaction 195: HNO2 + OH <=> H2O + NO2 + qf[196] = sc[8] * sc[15]; + qr[196] = sc[7] * sc[13]; + + // reaction 196: HNO2 <=> HONO + qf[197] = sc[15]; + qr[197] = sc[16]; + + // reaction 197: HNO2 + NH2 <=> NH3 + NO2 + qf[198] = sc[15] * sc[28]; + qr[198] = sc[13] * sc[22]; + + // reaction 198: H + HNO2 <=> H2O + NO + qf[199] = sc[4] * sc[15]; + qr[199] = sc[7] * sc[11]; + + // reaction 199: H + HNO2 <=> HNO + OH + qf[200] = sc[4] * sc[15]; + qr[200] = sc[8] * sc[14]; + + // reaction 200: NO + OH <=> HNO2 + qf[201] = sc[8] * sc[11]; + qr[201] = sc[15]; + + // reaction 202: HONO2 + OH <=> H2O + NO3 + qf[202] = sc[8] * sc[17]; + qr[202] = sc[7] * sc[25]; + + // compute the mixture concentration + amrex::Real mixture = 0.0; + for (int i = 0; i < 31; ++i) { + mixture += sc[i]; + } + + // compute the Gibbs free energy + amrex::Real g_RT[31]; + gibbs(g_RT, T); + + // reference concentration: P_atm / (RT) in inverse mol/m^3 + amrex::Real refC = 101325 / 8.31446 * invT; + amrex::Real refCinv = 1 / refC; + + // Evaluate the kfs + amrex::Real k_f, Corr; + amrex::Real redP, F, logPred, logFcent, troe_c, troe_n, troe, F_troe; + + // reaction 0: H2 + M <=> 2 H + M + k_f = 45770000000000 * exp((-1.4) * logT - (52535.8199100127) * invT); + Corr = mixture + (-0.17) * sc[2] + (1.5) * sc[3] + (11) * sc[7]; + qf[7] *= Corr * k_f; + qr[7] *= Corr * k_f * exp(-(g_RT[3] - 2.000000 * g_RT[4])) * (refCinv); + // reaction 1: H2 + O <=> H + OH + k_f = 0.0508 * exp((2.67) * logT - (3166.2392612433) * invT); + qf[15] *= k_f; + qr[15] *= k_f * exp(-(g_RT[3] - g_RT[4] + g_RT[6] - g_RT[8])); + // reaction 2: H2 + OH <=> H + H2O + k_f = 43800000 * exp(-(3517.48449397499) * invT); + qf[16] *= k_f; + qr[16] *= k_f * exp(-(g_RT[3] - g_RT[4] - g_RT[7] + g_RT[8])); + // reaction 3: 2 O + M <=> O2 + M + k_f = 6165 * exp((-0.5) * logT); + Corr = + mixture + (-0.17) * sc[0] + (-0.17) * sc[2] + (1.5) * sc[3] + (11) * sc[7]; + qf[8] *= Corr * k_f; + qr[8] *= Corr * k_f * exp(-(-g_RT[5] + 2.000000 * g_RT[6])) * (refC); + // reaction 4: H + O2 <=> O + OH + k_f = 114000000 * exp(-(7692.16995349094) * invT); + qf[17] *= k_f; + qr[17] *= k_f * exp(-(g_RT[4] + g_RT[5] - g_RT[6] - g_RT[8])); + // reaction 5: H + OH + M <=> H2O + M + k_f = 35000000000 * exp((-2) * logT); + Corr = mixture + (-0.62) * sc[0] + (-0.27) * sc[3] + (2.65) * sc[7]; + qf[9] *= Corr * k_f; + qr[9] *= Corr * k_f * exp(-(g_RT[4] - g_RT[7] + g_RT[8])) * (refC); + // reaction 6: H2O + O <=> 2 OH + k_f = 67 * exp((1.704) * logT - (7541.60752708217) * invT); + qf[18] *= k_f; + qr[18] *= k_f * exp(-(g_RT[6] + g_RT[7] - 2.000000 * g_RT[8])); + // reaction 7: H + O + M <=> OH + M + k_f = 4714000 * exp((-1) * logT); + Corr = + mixture + (-0.25) * sc[0] + (-0.25) * sc[2] + (1.5) * sc[3] + (11) * sc[7]; + qf[10] *= Corr * k_f; + qr[10] *= Corr * k_f * exp(-(g_RT[4] + g_RT[6] - g_RT[8])) * (refC); + // reaction 8: H2O2 (+M) <=> 2 OH (+M) + k_f = 2000000000000 * exp((0.9) * logT - (24531.3092413143) * invT); + Corr = mixture + (0.5) * sc[1] + (-0.35) * sc[2] + (2.7) * sc[3] + + (0.2) * sc[5] + (6.65) * sc[7] + (6.7) * sc[9]; + redP = Corr / k_f * 2.49e+18 * exp(-2.3 * logT - (24531.3092413143) * invT); + F = redP / (1.0 + redP); + logPred = log10(redP); + logFcent = log10((0.57) * exp(-T * 1e+30) + 0.43 * exp(-T * 1e-30) + 0.0); + troe_c = -0.4 - 0.67 * logFcent; + troe_n = 0.75 - 1.27 * logFcent; + troe = (troe_c + logPred) / (troe_n - 0.14 * (troe_c + logPred)); + F_troe = exp(M_LN10 * logFcent / (1.0 + troe * troe)); + Corr = F * F_troe; + qf[0] *= Corr * k_f; + qr[0] *= Corr * k_f * exp(-(-2.000000 * g_RT[8] + g_RT[9])) * (refCinv); + // reaction 9: H + H2O2 <=> H2O + OH + k_f = 24100000 * exp(-(1997.77016324474) * invT); + qf[19] *= k_f; + qr[19] *= k_f * exp(-(g_RT[4] - g_RT[7] - g_RT[8] + g_RT[9])); + // reaction 10: H + H2O2 <=> H2 + HO2 + k_f = 21500 * exp((1) * logT - (3019.29999482832) * invT); + qf[20] *= k_f; + qr[20] *= k_f * exp(-(-g_RT[3] + g_RT[4] + g_RT[9] - g_RT[10])); + // reaction 11: H2O2 + O <=> HO2 + OH + k_f = 9.55 * exp((2) * logT - (1997.77016324474) * invT); + qf[21] *= k_f; + qr[21] *= k_f * exp(-(g_RT[6] - g_RT[8] + g_RT[9] - g_RT[10])); + // reaction 12: H2O2 + OH <=> H2O + HO2 + k_f = 1740000 * exp(-(160.022899725901) * invT); + qf[22] *= k_f; + qr[22] *= k_f * exp(-(-g_RT[7] + g_RT[8] + g_RT[9] - g_RT[10])); + // reaction 13: H2O2 + OH <=> H2O + HO2 + k_f = 75900000 * exp(-(3657.88194373451) * invT); + qf[23] *= k_f; + qr[23] *= k_f * exp(-(-g_RT[7] + g_RT[8] + g_RT[9] - g_RT[10])); + // reaction 14: H + HO2 <=> 2 OH + k_f = 70790000 * exp(-(148.448916412392) * invT); + qf[24] *= k_f; + qr[24] *= k_f * exp(-(g_RT[4] - 2.000000 * g_RT[8] + g_RT[10])); + // reaction 15: H + HO2 <=> H2 + O2 + k_f = 11402 * exp((1.0827) * logT - (278.671325189338) * invT); + qf[25] *= k_f; + qr[25] *= k_f * exp(-(-g_RT[3] + g_RT[4] - g_RT[5] + g_RT[10])); + // reaction 16: HO2 + O <=> O2 + OH + k_f = 32500000; + qf[26] *= k_f; + qr[26] *= k_f * exp(-(-g_RT[5] + g_RT[6] - g_RT[8] + g_RT[10])); + // reaction 17: HO2 + OH <=> H2O + O2 + k_f = 7000000 * exp(-(-549.995687057926) * invT); + qf[27] *= k_f; + qr[27] *= k_f * exp(-(-g_RT[5] - g_RT[7] + g_RT[8] + g_RT[10])); + // reaction 18: HO2 + OH <=> H2O + O2 + k_f = 450000000 * exp(-(5499.95687057926) * invT); + qf[28] *= k_f; + qr[28] *= k_f * exp(-(-g_RT[5] - g_RT[7] + g_RT[8] + g_RT[10])); + // reaction 19: 2 HO2 <=> H2O2 + O2 + k_f = 100000000 * exp(-(5555.95633080001) * invT); + qf[29] *= k_f; + qr[29] *= k_f * exp(-(-g_RT[5] - g_RT[9] + 2.000000 * g_RT[10])); + // reaction 20: 2 HO2 <=> H2O2 + O2 + k_f = 190000 * exp(-(-708.994440225581) * invT); + qf[30] *= k_f; + qr[30] *= k_f * exp(-(-g_RT[5] - g_RT[9] + 2.000000 * g_RT[10])); + // reaction 21: H + O2 (+M) <=> HO2 (+M) + k_f = 4650000 * exp((0.44) * logT); + Corr = + mixture + (-0.5) * sc[0] + (-0.36) * sc[2] + (0.3) * sc[3] + (9) * sc[7]; + redP = Corr / k_f * 17370000 * exp(-1.23 * logT); + F = redP / (1.0 + redP); + logPred = log10(redP); + logFcent = log10( + (0.33) * exp(-T * 1e+30) + 0.67 * exp(-T * 1e-30) + exp(-1e+30 * invT)); + troe_c = -0.4 - 0.67 * logFcent; + troe_n = 0.75 - 1.27 * logFcent; + troe = (troe_c + logPred) / (troe_n - 0.14 * (troe_c + logPred)); + F_troe = exp(M_LN10 * logFcent / (1.0 + troe * troe)); + Corr = F * F_troe; + qf[1] *= Corr * k_f; + qr[1] *= Corr * k_f * exp(-(g_RT[4] + g_RT[5] - g_RT[10])) * (refC); + // reaction 22: O + OH + M <=> HO2 + M + k_f = 10000; + Corr = mixture; + qf[11] *= Corr * k_f; + qr[11] *= Corr * k_f * exp(-(g_RT[6] + g_RT[8] - g_RT[10])) * (refC); + // reaction 23: NH3 <=> H + NH2 + k_f = 3.4656307097861e+30 * + exp((-5.22452592834206) * logT - (55938.3595884331) * invT); + qf[31] *= k_f; + qr[31] *= k_f * exp(-(-g_RT[4] + g_RT[22] - g_RT[28])) * (refCinv); + // reaction 24: H + NH2 <=> H2 + NH + k_f = 40000000 * exp(-(1836.74083018723) * invT); + qf[32] *= k_f; + qr[32] *= k_f * exp(-(-g_RT[3] + g_RT[4] - g_RT[26] + g_RT[28])); + // reaction 25: H + NH3 <=> H2 + NH2 + k_f = 0.01963 * exp((2.854) * logT - (4287.50663598937) * invT); + qf[33] *= k_f; + qr[33] *= k_f * exp(-(-g_RT[3] + g_RT[4] + g_RT[22] - g_RT[28])); + // reaction 26: NH3 + OH <=> H2O + NH2 + k_f = 0.1559 * exp((2.372) * logT - (59.8324615641812) * invT); + qf[34] *= k_f; + qr[34] *= k_f * exp(-(-g_RT[7] + g_RT[8] + g_RT[22] - g_RT[28])); + // reaction 27: NH3 + O <=> NH2 + OH + k_f = 0.000443 * exp((3.18) * logT - (3391.63000585723) * invT); + qf[35] *= k_f; + qr[35] *= k_f * exp(-(g_RT[6] - g_RT[8] + g_RT[22] - g_RT[28])); + // reaction 28: HO2 + NH3 <=> H2O2 + NH2 + k_f = 1.173e-06 * exp((3.839) * logT - (8685.51965178946) * invT); + qf[36] *= k_f; + qr[36] *= k_f * exp(-(-g_RT[9] + g_RT[10] + g_RT[22] - g_RT[28])); + // reaction 29: NH3 + O2 <=> HO2 + NH2 + k_f = 14150 * exp((1.285) * logT - (27789.6371523998) * invT); + qf[37] *= k_f; + qr[37] *= k_f * exp(-(g_RT[5] - g_RT[10] + g_RT[22] - g_RT[28])); + // reaction 30: NH2 + O <=> H + HNO + k_f = 1500000000 * exp((-0.547) * logT - (421.041384278809) * invT); + qf[38] *= k_f; + qr[38] *= k_f * exp(-(-g_RT[4] + g_RT[6] - g_RT[14] + g_RT[28])); + // reaction 31: NH2 + O <=> H + HNO + k_f = 77300000 * exp((-0.277) * logT - (325.279252776171) * invT); + qf[39] *= k_f; + qr[39] *= k_f * exp(-(-g_RT[4] + g_RT[6] - g_RT[14] + g_RT[28])); + // reaction 32: NH2 + O <=> NH + OH + k_f = 7000000; + qf[40] *= k_f; + qr[40] *= k_f * exp(-(g_RT[6] - g_RT[8] - g_RT[26] + g_RT[28])); + // reaction 33: NH2 + O <=> NH + OH + k_f = 330 * exp((1.5) * logT - (2554.7303689574) * invT); + qf[41] *= k_f; + qr[41] *= k_f * exp(-(g_RT[6] - g_RT[8] - g_RT[26] + g_RT[28])); + // reaction 34: NH2 + OH <=> H2O + NH + k_f = 9.6 * exp((1.97) * logT - (337.155166089162) * invT); + qf[42] *= k_f; + qr[42] *= k_f * exp(-(-g_RT[7] + g_RT[8] - g_RT[26] + g_RT[28])); + // reaction 35: NH2 + O2 <=> HNO + OH + k_f = 2.9e-08 * exp((3.764) * logT - (9150.99506765883) * invT); + qf[43] *= k_f; + qr[43] *= k_f * exp(-(g_RT[5] - g_RT[8] - g_RT[14] + g_RT[28])); + // reaction 36: NH2 + O2 <=> H2NO + O + k_f = 260000 * exp((0.487) * logT - (14618.4441416271) * invT); + qf[44] *= k_f; + qr[44] *= k_f * exp(-(g_RT[5] - g_RT[6] + g_RT[28] - g_RT[29])); + // reaction 37: HO2 + NH2 <=> H2NO + OH + k_f = 15660000; + qf[45] *= k_f; + qr[45] *= k_f * exp(-(-g_RT[8] + g_RT[10] + g_RT[28] - g_RT[29])); + // reaction 38: NH + NH2 <=> H + N2H2 + k_f = 1500000000 * exp((-0.5) * logT); + qf[46] *= k_f; + qr[46] *= k_f * exp(-(-g_RT[4] - g_RT[18] + g_RT[26] + g_RT[28])); + // reaction 39: NH + NH2 <=> N + NH3 + k_f = 0.0096 * exp((2.46) * logT - (53.844183241105) * invT); + qf[47] *= k_f; + qr[47] *= k_f * exp(-(-g_RT[22] - g_RT[24] + g_RT[26] + g_RT[28])); + // reaction 40: 2 NH <=> N + NH2 + k_f = 5.7e-07 * exp((3.88) * logT - (172.100099705214) * invT); + qf[48] *= k_f; + qr[48] *= k_f * exp(-(-g_RT[24] + 2.000000 * g_RT[26] - g_RT[28])); + // reaction 41: 2 NH => H2 + N2 + k_f = 6260000 * exp((-0.036) * logT - (-80.9675615279794) * invT); + qf[49] *= k_f; + qr[49] *= k_f * exp(-(-g_RT[1] - g_RT[3] + 2.000000 * g_RT[26])); + // reaction 42: 2 NH => 2 H + N2 + k_f = 56340000 * exp((-0.036) * logT - (-80.9675615279794) * invT); + qf[50] *= k_f; + qr[50] *= k_f * exp(-(-g_RT[1] - 2.000000 * g_RT[4] + 2.000000 * g_RT[26])) * + (refCinv); + // reaction 43: 2 NH2 <=> NH + NH3 + k_f = 5.64e-06 * exp((3.53) * logT - (276.769166192596) * invT); + qf[51] *= k_f; + qr[51] *= k_f * exp(-(-g_RT[22] - g_RT[26] + 2.000000 * g_RT[28])); + // reaction 44: 2 NH2 <=> N2H4 + k_f = 5.42248766831622e+42 * + exp((-11.2978848534069) * logT - (5973.94105162226) * invT); + qf[52] *= k_f; + qr[52] *= k_f * exp(-(-g_RT[23] + 2.000000 * g_RT[28])) * (refC); + // reaction 45: 2 NH2 <=> H + N2H3 + k_f = 1198178.67715513 * + exp((-0.0298856677517254) * logT - (5074.23692769742) * invT); + qf[53] *= k_f; + qr[53] *= k_f * exp(-(-g_RT[4] + 2.000000 * g_RT[28] - g_RT[30])); + // reaction 46: 2 NH2 <=> H2 + H2NN + k_f = 1.18900999517547e+15 * + exp((-3.07902817588967) * logT - (1691.28964263562) * invT); + qf[54] *= k_f; + qr[54] *= k_f * exp(-(-g_RT[3] - g_RT[19] + 2.000000 * g_RT[28])); + // reaction 47: NH2OH (+M) <=> NH2 + OH (+M) + k_f = 1.4e+20 * exp((-1.31) * logT - (32246.1239447664) * invT); + Corr = mixture; + redP = Corr / k_f * 5.4e+31 * exp(-5.96 * logT - (33606.3185924366) * invT); + F = redP / (1.0 + redP); + logPred = log10(redP); + logFcent = log10( + (0.65) * exp(-T * 1e+30) + 0.35 * exp(-T * 1e-30) + exp(-1e+30 * invT)); + troe_c = -0.4 - 0.67 * logFcent; + troe_n = 0.75 - 1.27 * logFcent; + troe = (troe_c + logPred) / (troe_n - 0.14 * (troe_c + logPred)); + F_troe = exp(M_LN10 * logFcent / (1.0 + troe * troe)); + Corr = F * F_troe; + qf[2] *= Corr * k_f; + qr[2] *= Corr * k_f * exp(-(-g_RT[8] + g_RT[20] - g_RT[28])) * (refCinv); + // reaction 48: H + NH2OH <=> H2 + HNOH + k_f = 480 * exp((1.5) * logT - (3144.60094461369) * invT); + qf[55] *= k_f; + qr[55] *= k_f * exp(-(-g_RT[3] + g_RT[4] + g_RT[20] - g_RT[21])); + // reaction 49: H + NH2OH <=> H2 + H2NO + k_f = 240 * exp((1.5) * logT - (2549.79884563251) * invT); + qf[56] *= k_f; + qr[56] *= k_f * exp(-(-g_RT[3] + g_RT[4] + g_RT[20] - g_RT[29])); + // reaction 50: NH2OH + O <=> HNOH + OH + k_f = 330 * exp((1.5) * logT - (1944.93241333524) * invT); + qf[57] *= k_f; + qr[57] *= k_f * exp(-(g_RT[6] - g_RT[8] + g_RT[20] - g_RT[21])); + // reaction 51: NH2OH + O <=> H2NO + OH + k_f = 170 * exp((1.5) * logT - (1514.68216407221) * invT); + qf[58] *= k_f; + qr[58] *= k_f * exp(-(g_RT[6] - g_RT[8] + g_RT[20] - g_RT[29])); + // reaction 52: NH2OH + OH <=> H2O + HNOH + k_f = 0.015 * exp((2.61) * logT - (-1779.87734695129) * invT); + qf[59] *= k_f; + qr[59] *= k_f * exp(-(-g_RT[7] + g_RT[8] + g_RT[20] - g_RT[21])); + // reaction 53: NH2OH + OH <=> H2NO + H2O + k_f = 0.15 * exp((2.28) * logT - (-652.168798882917) * invT); + qf[60] *= k_f; + qr[60] *= k_f * exp(-(-g_RT[7] + g_RT[8] + g_RT[20] - g_RT[29])); + // reaction 54: NH2 + NH2OH <=> HNOH + NH3 + k_f = 1.1e-07 * exp((4) * logT - (-48.8120165830578) * invT); + qf[61] *= k_f; + qr[61] *= k_f * exp(-(g_RT[20] - g_RT[21] - g_RT[22] + g_RT[28])); + // reaction 55: NH2 + NH2OH <=> H2NO + NH3 + k_f = 9.5e-06 * exp((3.42) * logT - (-509.758482460181) * invT); + qf[62] *= k_f; + qr[62] *= k_f * exp(-(g_RT[20] - g_RT[22] + g_RT[28] - g_RT[29])); + // reaction 56: NH + NH2OH <=> HNOH + NH2 + k_f = 2.9e-09 * exp((4.4) * logT - (787.030865318582) * invT); + qf[63] *= k_f; + qr[63] *= k_f * exp(-(g_RT[20] - g_RT[21] + g_RT[26] - g_RT[28])); + // reaction 57: NH + NH2OH <=> H2NO + NH2 + k_f = 1.5e-09 * exp((4.6) * logT - (1219.79719791064) * invT); + qf[64] *= k_f; + qr[64] *= k_f * exp(-(g_RT[20] + g_RT[26] - g_RT[28] - g_RT[29])); + // reaction 58: HO2 + NH2OH <=> H2O2 + HNOH + k_f = 0.029 * exp((2.69) * logT - (4809.24167509571) * invT); + qf[65] *= k_f; + qr[65] *= k_f * exp(-(-g_RT[9] + g_RT[10] + g_RT[20] - g_RT[21])); + // reaction 59: HO2 + NH2OH <=> H2NO + H2O2 + k_f = 0.014 * exp((2.69) * logT - (3229.64456113469) * invT); + qf[66] *= k_f; + qr[66] *= k_f * exp(-(-g_RT[9] + g_RT[10] + g_RT[20] - g_RT[29])); + // reaction 60: HNOH + M <=> H + HNO + M + k_f = 2e+18 * exp((-2.84) * logT - (29656.5709825354) * invT); + Corr = mixture; + qf[12] *= Corr * k_f; + qr[12] *= Corr * k_f * exp(-(-g_RT[4] - g_RT[14] + g_RT[21])) * (refCinv); + // reaction 61: HNOH + O2 <=> HNO + HO2 + k_f = 3000000 * exp(-(12580.416645118) * invT); + qf[67] *= k_f; + qr[67] *= k_f * exp(-(g_RT[5] - g_RT[10] - g_RT[14] + g_RT[21])); + // reaction 62: H + HNOH <=> NH2 + OH + k_f = 40000000; + qf[68] *= k_f; + qr[68] *= k_f * exp(-(g_RT[4] - g_RT[8] + g_RT[21] - g_RT[28])); + // reaction 63: H + HNOH <=> H2 + HNO + k_f = 480 * exp((1.5) * logT - (190.215899674184) * invT); + qf[69] *= k_f; + qr[69] *= k_f * exp(-(-g_RT[3] + g_RT[4] - g_RT[14] + g_RT[21])); + // reaction 64: HNOH + O <=> HNO + OH + k_f = 70000000; + qf[70] *= k_f; + qr[70] *= k_f * exp(-(g_RT[6] - g_RT[8] - g_RT[14] + g_RT[21])); + // reaction 65: HNOH + O <=> HNO + OH + k_f = 330 * exp((1.5) * logT - (-180.15156635809) * invT); + qf[71] *= k_f; + qr[71] *= k_f * exp(-(g_RT[6] - g_RT[8] - g_RT[14] + g_RT[21])); + // reaction 66: HNOH + OH <=> H2O + HNO + k_f = 2.4 * exp((2) * logT - (-599.834265639226) * invT); + qf[72] *= k_f; + qr[72] *= k_f * exp(-(-g_RT[7] + g_RT[8] - g_RT[14] + g_RT[21])); + // reaction 67: HNOH + HO2 <=> H2O2 + HNO + k_f = 0.029 * exp((2.69) * logT - (-805.146665287552) * invT); + qf[73] *= k_f; + qr[73] *= k_f * exp(-(-g_RT[9] + g_RT[10] - g_RT[14] + g_RT[21])); + // reaction 68: HNOH + HO2 <=> NH2OH + O2 + k_f = 0.029 * exp((2.69) * logT - (-805.146665287552) * invT); + qf[74] *= k_f; + qr[74] *= k_f * exp(-(-g_RT[5] + g_RT[10] - g_RT[20] + g_RT[21])); + // reaction 69: HNOH + NH2 <=> HNO + NH3 + k_f = 1.8 * exp((1.94) * logT - (-579.705599007037) * invT); + qf[75] *= k_f; + qr[75] *= k_f * exp(-(-g_RT[14] + g_RT[21] - g_RT[22] + g_RT[28])); + // reaction 70: HNOH + NH2 <=> N2H3 + OH + k_f = 6.7 * exp((1.82) * logT - (359.950881050116) * invT); + qf[76] *= k_f; + qr[76] *= k_f * exp(-(-g_RT[8] + g_RT[21] + g_RT[28] - g_RT[30])); + // reaction 71: HNOH + NH2 <=> H2NN + H2O + k_f = 46000000000000 * exp((-1.94) * logT - (969.899801672017) * invT); + qf[77] *= k_f; + qr[77] *= k_f * exp(-(-g_RT[7] - g_RT[19] + g_RT[21] + g_RT[28])); + // reaction 72: HNOH + NO2 <=> HNO + HONO + k_f = 600000 * exp(-(1006.43333160944) * invT); + qf[78] *= k_f; + qr[78] *= k_f * exp(-(g_RT[13] - g_RT[14] - g_RT[16] + g_RT[21])); + // reaction 73: NH2 + NO2 <=> H2NO + NO + k_f = 860000 * exp((0.11) * logT - (-596.814965644398) * invT); + qf[79] *= k_f; + qr[79] *= k_f * exp(-(-g_RT[11] + g_RT[13] + g_RT[28] - g_RT[29])); + // reaction 74: NH2 + NO2 <=> H2O + N2O + k_f = 220000 * exp((0.11) * logT - (-596.814965644398) * invT); + qf[80] *= k_f; + qr[80] *= k_f * exp(-(-g_RT[7] - g_RT[12] + g_RT[13] + g_RT[28])); + // reaction 75: NH2 + NO <=> H2O + N2 + k_f = 26000000000000 * exp((-2.369) * logT - (437.798499250106) * invT); + qf[81] *= k_f; + qr[81] *= k_f * exp(-(-g_RT[1] - g_RT[7] + g_RT[11] + g_RT[28])); + // reaction 76: NH2 + NO <=> NNH + OH + k_f = 43000 * exp((0.294) * logT - (-435.785632586887) * invT); + qf[82] *= k_f; + qr[82] *= k_f * exp(-(-g_RT[8] + g_RT[11] - g_RT[27] + g_RT[28])); + // reaction 77: H + NH <=> H2 + N + k_f = 30100000; + qf[83] *= k_f; + qr[83] *= k_f * exp(-(-g_RT[3] + g_RT[4] - g_RT[24] + g_RT[26])); + // reaction 78: NH + O <=> H + NO + k_f = 30000000; + qf[84] *= k_f; + qr[84] *= k_f * exp(-(-g_RT[4] + g_RT[6] - g_RT[11] + g_RT[26])); + // reaction 79: NH + OH <=> H + HNO + k_f = 20000000; + qf[85] *= k_f; + qr[85] *= k_f * exp(-(-g_RT[4] + g_RT[8] - g_RT[14] + g_RT[26])); + // reaction 80: NH + OH <=> H2O + N + k_f = 2000 * exp((1.2) * logT); + qf[86] *= k_f; + qr[86] *= k_f * exp(-(-g_RT[7] + g_RT[8] - g_RT[24] + g_RT[26])); + // reaction 81: NH + O2 <=> HNO + O + k_f = 405000 * exp((0.09) * logT - (5369.32182413636) * invT); + qf[87] *= k_f; + qr[87] *= k_f * exp(-(g_RT[5] - g_RT[6] - g_RT[14] + g_RT[26])); + // reaction 82: NH + O2 <=> NO + OH + k_f = 2010000000 * exp((-1.38) * logT - (2853.23849511276) * invT); + qf[88] *= k_f; + qr[88] *= k_f * exp(-(g_RT[5] - g_RT[8] - g_RT[11] + g_RT[26])); + // reaction 83: N + NH <=> H + N2 + k_f = 641000 * exp((0.51) * logT - (10.0643333160944) * invT); + qf[89] *= k_f; + qr[89] *= k_f * exp(-(-g_RT[1] - g_RT[4] + g_RT[24] + g_RT[26])); + // reaction 84: NH + NO <=> H + N2O + k_f = 5328000 * exp((0.026) * logT - (-1456.25870917228) * invT); + qf[90] *= k_f; + qr[90] *= k_f * exp(-(-g_RT[4] + g_RT[11] - g_RT[12] + g_RT[26])); + // reaction 85: NH + NO <=> N2 + OH + k_f = 36350 * exp((0.361) * logT - (-1431.29916254836) * invT); + qf[91] *= k_f; + qr[91] *= k_f * exp(-(-g_RT[1] - g_RT[8] + g_RT[11] + g_RT[26])); + // reaction 86: NH + NO2 <=> N2O + OH + k_f = 4100000; + qf[92] *= k_f; + qr[92] *= k_f * exp(-(-g_RT[8] - g_RT[12] + g_RT[13] + g_RT[26])); + // reaction 87: NH + NO2 <=> HNO + NO + k_f = 5900000; + qf[93] *= k_f; + qr[93] *= k_f * exp(-(-g_RT[11] + g_RT[13] - g_RT[14] + g_RT[26])); + // reaction 88: N + OH <=> H + NO + k_f = 28300000; + qf[94] *= k_f; + qr[94] *= k_f * exp(-(-g_RT[4] + g_RT[8] - g_RT[11] + g_RT[24])); + // reaction 89: N + O2 <=> NO + O + k_f = 9027 * exp((1) * logT - (3270.90832773068) * invT); + qf[95] *= k_f; + qr[95] *= k_f * exp(-(g_RT[5] - g_RT[6] - g_RT[11] + g_RT[24])); + // reaction 90: N + NO <=> N2 + O + k_f = 42800000 * exp(-(790.05016531341) * invT); + qf[96] *= k_f; + qr[96] *= k_f * exp(-(-g_RT[1] - g_RT[6] + g_RT[11] + g_RT[24])); + // reaction 91: N2H4 <=> H2 + H2NN + k_f = 5.65145496101273e+39 * + exp((-8.3585749186206) * logT - (34882.1236135086) * invT); + qf[97] *= k_f; + qr[97] *= k_f * exp(-(-g_RT[3] - g_RT[19] + g_RT[23])) * (refCinv); + // reaction 92: H + N2H4 <=> H2 + N2H3 + k_f = 960 * exp((1.5) * logT - (2434.71319416298) * invT); + qf[98] *= k_f; + qr[98] *= k_f * exp(-(-g_RT[3] + g_RT[4] + g_RT[23] - g_RT[30])); + // reaction 93: N2H4 + O <=> N2H3 + OH + k_f = 670 * exp((1.5) * logT - (1434.821679209) * invT); + qf[99] *= k_f; + qr[99] *= k_f * exp(-(g_RT[6] - g_RT[8] + g_RT[23] - g_RT[30])); + // reaction 94: N2H4 + O <=> H2O + N2H2 + k_f = 84900000 * exp(-(603.859998965664) * invT); + qf[100] *= k_f; + qr[100] *= k_f * exp(-(g_RT[6] - g_RT[7] - g_RT[18] + g_RT[23])); + // reaction 95: N2H4 + OH <=> H2O + N2H3 + k_f = 13000000 * exp(-(-160.022899725901) * invT); + qf[101] *= k_f; + qr[101] *= k_f * exp(-(-g_RT[7] + g_RT[8] + g_RT[23] - g_RT[30])); + // reaction 96: N2H4 + NH2 <=> N2H3 + NH3 + k_f = 3.7 * exp((1.94) * logT - (820.243165261693) * invT); + qf[102] *= k_f; + qr[102] *= k_f * exp(-(-g_RT[22] + g_RT[23] + g_RT[28] - g_RT[30])); + // reaction 97: N2H4 + NO <=> HNO + N2H3 + k_f = 6e-05 * exp((3.16) * logT - (15521.7180567466) * invT); + qf[103] *= k_f; + qr[103] *= k_f * exp(-(g_RT[11] - g_RT[14] + g_RT[23] - g_RT[30])); + // reaction 98: N2H4 + NO2 <=> HONO + N2H3 + k_f = 8.2e-05 * exp((3.13) * logT - (4458.49965902982) * invT); + qf[104] *= k_f; + qr[104] *= k_f * exp(-(g_RT[13] - g_RT[16] + g_RT[23] - g_RT[30])); + // reaction 99: N2H4 + NO2 <=> HNO2 + N2H3 + k_f = 2.4e-08 * exp((4.14) * logT - (3998.5596264843) * invT); + qf[105] *= k_f; + qr[105] *= k_f * exp(-(g_RT[13] - g_RT[15] + g_RT[23] - g_RT[30])); + // reaction 100: N2H3 <=> H + N2H2 + k_f = 3.40662040294527e+47 * + exp((-10.3752552116966) * logT - (34695.7112236119) * invT); + qf[106] *= k_f; + qr[106] *= k_f * exp(-(-g_RT[4] - g_RT[18] + g_RT[30])) * (refCinv); + // reaction 101: H + N2H3 <=> H2 + N2H2 + k_f = 240 * exp((1.5) * logT); + qf[107] *= k_f; + qr[107] *= k_f * exp(-(-g_RT[3] + g_RT[4] - g_RT[18] + g_RT[30])); + // reaction 102: N2H3 + O <=> HNO + NH2 + k_f = 30000000; + qf[108] *= k_f; + qr[108] *= k_f * exp(-(g_RT[6] - g_RT[14] - g_RT[28] + g_RT[30])); + // reaction 103: N2H3 + O <=> N2H2 + OH + k_f = 170 * exp((1.5) * logT - (-324.826357776947) * invT); + qf[109] *= k_f; + qr[109] *= k_f * exp(-(g_RT[6] - g_RT[8] - g_RT[18] + g_RT[30])); + // reaction 104: N2H3 + OH <=> H2O + N2H2 + k_f = 1.2 * exp((2) * logT - (-599.632978972904) * invT); + qf[110] *= k_f; + qr[110] *= k_f * exp(-(-g_RT[7] + g_RT[8] - g_RT[18] + g_RT[30])); + // reaction 105: N2H3 + OH <=> H2NN + H2O + k_f = 30000000; + qf[111] *= k_f; + qr[111] *= k_f * exp(-(-g_RT[7] + g_RT[8] - g_RT[19] + g_RT[30])); + // reaction 106: N2H3 + NH2 <=> N2H2 + NH3 + k_f = 0.92 * exp((1.94) * logT - (-579.957207339939) * invT); + qf[112] *= k_f; + qr[112] *= k_f * exp(-(-g_RT[18] - g_RT[22] + g_RT[28] + g_RT[30])); + // reaction 107: N2H3 + NH2 <=> H2NN + NH3 + k_f = 30000000; + qf[113] *= k_f; + qr[113] *= k_f * exp(-(-g_RT[19] - g_RT[22] + g_RT[28] + g_RT[30])); + // reaction 108: HO2 + N2H3 <=> H2O2 + N2H2 + k_f = 0.014 * exp((2.69) * logT - (-804.895056954649) * invT); + qf[114] *= k_f; + qr[114] *= k_f * exp(-(-g_RT[9] + g_RT[10] - g_RT[18] + g_RT[30])); + // reaction 109: HO2 + N2H3 <=> N2H4 + O2 + k_f = 0.92 * exp((1.94) * logT - (1069.88895316741) * invT); + qf[115] *= k_f; + qr[115] *= k_f * exp(-(-g_RT[5] + g_RT[10] - g_RT[23] + g_RT[30])); + // reaction 110: N2H2 <=> H + NNH + k_f = 1.71879413245943e+40 * + exp((-8.40622703580694) * logT - (36903.4250189979) * invT); + qf[116] *= k_f; + qr[116] *= k_f * exp(-(-g_RT[4] + g_RT[18] - g_RT[27])) * (refCinv); + // reaction 111: N2H2 <=> H + NNH + k_f = 2.49240230236554e+40 * + exp((-8.5266271986759) * logT - (36671.3233662919) * invT); + qf[117] *= k_f; + qr[117] *= k_f * exp(-(-g_RT[4] + g_RT[18] - g_RT[27])) * (refCinv); + // reaction 112: H + N2H2 <=> H2 + NNH + k_f = 4121 * exp((1.289) * logT - (-112.770854806838) * invT); + qf[118] *= k_f; + qr[118] *= k_f * exp(-(-g_RT[3] + g_RT[4] + g_RT[18] - g_RT[27])); + // reaction 113: N2H2 + O <=> NNH + OH + k_f = 330 * exp((1.5) * logT - (249.847074572043) * invT); + qf[119] *= k_f; + qr[119] *= k_f * exp(-(g_RT[6] - g_RT[8] + g_RT[18] - g_RT[27])); + // reaction 114: N2H2 + OH <=> H2O + NNH + k_f = 5.923e-05 * exp((3.4) * logT - (-686.236567157896) * invT); + qf[120] *= k_f; + qr[120] *= k_f * exp(-(-g_RT[7] + g_RT[8] + g_RT[18] - g_RT[27])); + // reaction 115: N2H2 + NO <=> N2O + NH2 + k_f = 4000000 * exp(-(5996.32978972904) * invT); + qf[121] *= k_f; + qr[121] *= k_f * exp(-(g_RT[11] - g_RT[12] + g_RT[18] - g_RT[28])); + // reaction 116: N2H2 + NH <=> NH2 + NNH + k_f = 2.4 * exp((2) * logT - (-599.632978972904) * invT); + qf[122] *= k_f; + qr[122] *= k_f * exp(-(g_RT[18] + g_RT[26] - g_RT[27] - g_RT[28])); + // reaction 117: N2H2 + NH2 <=> NH3 + NNH + k_f = 8.8e-08 * exp((4.05) * logT - (-810.178831945599) * invT); + qf[123] *= k_f; + qr[123] *= k_f * exp(-(g_RT[18] - g_RT[22] - g_RT[27] + g_RT[28])); + // reaction 118: N2H2 <=> H2NN + k_f = 1.93940668415635e+41 * + exp((-9.37788485340692) * logT - (34444.2013843765) * invT); + qf[124] *= k_f; + qr[124] *= k_f * exp(-(g_RT[18] - g_RT[19])); + // reaction 119: H2NN <=> H + NNH + k_f = 9.20264764849862e+35 * + exp((-7.56668436480004) * logT - (27588.2318940823) * invT); + qf[125] *= k_f; + qr[125] *= k_f * exp(-(-g_RT[4] + g_RT[19] - g_RT[27])) * (refCinv); + // reaction 120: H2NN <=> H + NNH + k_f = 3.09039101188632e+31 * + exp((-6.22886074924128) * logT - (26322.6514882744) * invT); + qf[126] *= k_f; + qr[126] *= k_f * exp(-(-g_RT[4] + g_RT[19] - g_RT[27])) * (refCinv); + // reaction 121: H2NN + O2 <=> NH2 + NO2 + k_f = 1500000 * exp(-(2999.67454486193) * invT); + qf[127] *= k_f; + qr[127] *= k_f * exp(-(g_RT[5] - g_RT[13] + g_RT[19] - g_RT[28])); + // reaction 122: H + H2NN <=> H + N2H2 + k_f = 18000 * exp((0.97) * logT - (2249.78106947974) * invT); + qf[128] *= k_f; + qr[128] *= k_f * exp(-(g_RT[4] - g_RT[4] - g_RT[18] + g_RT[19])); + // reaction 123: H + H2NN <=> H2 + NNH + k_f = 480 * exp((1.5) * logT - (-449.97634256258) * invT); + qf[129] *= k_f; + qr[129] *= k_f * exp(-(-g_RT[3] + g_RT[4] + g_RT[19] - g_RT[27])); + // reaction 124: H2NN + O <=> NH2 + NO + k_f = 3200 * exp((1.03) * logT - (1359.84239600409) * invT); + qf[130] *= k_f; + qr[130] *= k_f * exp(-(g_RT[6] - g_RT[11] + g_RT[19] - g_RT[28])); + // reaction 125: H2NN + O <=> NNH + OH + k_f = 330 * exp((1.5) * logT - (-449.97634256258) * invT); + qf[131] *= k_f; + qr[131] *= k_f * exp(-(g_RT[6] - g_RT[8] + g_RT[19] - g_RT[27])); + // reaction 126: H2NN + OH <=> H2O + NNH + k_f = 2.4 * exp((2) * logT - (-599.934908972387) * invT); + qf[132] *= k_f; + qr[132] *= k_f * exp(-(-g_RT[7] + g_RT[8] + g_RT[19] - g_RT[27])); + // reaction 127: H2NN + NH2 <=> NH3 + NNH + k_f = 1.8 * exp((1.94) * logT - (-579.957207339939) * invT); + qf[133] *= k_f; + qr[133] *= k_f * exp(-(g_RT[19] - g_RT[22] - g_RT[27] + g_RT[28])); + // reaction 128: H2NN + HO2 <=> H2O2 + NNH + k_f = 0.029 * exp((2.69) * logT - (-804.895056954649) * invT); + qf[134] *= k_f; + qr[134] *= k_f * exp(-(-g_RT[9] + g_RT[10] + g_RT[19] - g_RT[27])); + // reaction 129: NNH <=> H + N2 + k_f = 1000000000; + qf[135] *= k_f; + qr[135] *= k_f * exp(-(-g_RT[1] - g_RT[4] + g_RT[27])) * (refCinv); + // reaction 130: H + NNH <=> H2 + N2 + k_f = 240 * exp((1.5) * logT - (-449.724734229678) * invT); + qf[136] *= k_f; + qr[136] *= k_f * exp(-(-g_RT[1] - g_RT[3] + g_RT[4] + g_RT[27])); + // reaction 131: NNH + O <=> H + N2O + k_f = 190000000 * exp((-0.274) * logT - (-11.0707666477038) * invT); + qf[137] *= k_f; + qr[137] *= k_f * exp(-(-g_RT[4] + g_RT[6] - g_RT[12] + g_RT[27])); + // reaction 132: NNH + O <=> NH + NO + k_f = 520000 * exp((0.388) * logT - (-205.81561631413) * invT); + qf[138] *= k_f; + qr[138] *= k_f * exp(-(g_RT[6] - g_RT[11] - g_RT[26] + g_RT[27])); + // reaction 133: NNH + O <=> N2 + OH + k_f = 12000000 * exp((0.145) * logT - (-109.198016479624) * invT); + qf[139] *= k_f; + qr[139] *= k_f * exp(-(-g_RT[1] + g_RT[6] - g_RT[8] + g_RT[27])); + // reaction 134: NNH + OH <=> H2O + N2 + k_f = 50000000; + qf[140] *= k_f; + qr[140] *= k_f * exp(-(-g_RT[1] - g_RT[7] + g_RT[8] + g_RT[27])); + // reaction 135: NNH + O2 <=> HO2 + N2 + k_f = 560000000 * exp((-0.385) * logT - (-6.54181665546136) * invT); + qf[141] *= k_f; + qr[141] *= k_f * exp(-(-g_RT[1] + g_RT[5] - g_RT[10] + g_RT[27])); + // reaction 136: NH2 + NNH <=> N2 + NH3 + k_f = 0.92 * exp((1.94) * logT - (-579.655277340457) * invT); + qf[142] *= k_f; + qr[142] *= k_f * exp(-(-g_RT[1] - g_RT[22] + g_RT[27] + g_RT[28])); + // reaction 137: HO2 + NNH <=> H2O2 + N2 + k_f = 0.014 * exp((2.69) * logT - (-804.895056954649) * invT); + qf[143] *= k_f; + qr[143] *= k_f * exp(-(-g_RT[1] - g_RT[9] + g_RT[10] + g_RT[27])); + // reaction 138: NNH + NO <=> HNO + N2 + k_f = 50000000; + qf[144] *= k_f; + qr[144] *= k_f * exp(-(-g_RT[1] + g_RT[11] - g_RT[14] + g_RT[27])); + // reaction 139: HO2 + NO <=> NO2 + OH + k_f = 2110000 * exp(-(-241.543999586265) * invT); + qf[145] *= k_f; + qr[145] *= k_f * exp(-(-g_RT[8] + g_RT[10] + g_RT[11] - g_RT[13])); + // reaction 140: NO + O (+M) <=> NO2 (+M) + k_f = 1300000000 * exp((-0.75) * logT); + Corr = mixture + (0.7) * sc[1] + (0.5) * sc[5] + (9) * sc[7]; + redP = + Corr / k_f * 4720000000000 * exp(-2.87 * logT - (779.985831997315) * invT); + F = redP / (1.0 + redP); + logPred = log10(redP); + logFcent = log10( + (0.25) * exp(-T * 0.001) + 0.75 * exp(-T * 1e-05) + exp(-1e+30 * invT)); + troe_c = -0.4 - 0.67 * logFcent; + troe_n = 0.75 - 1.27 * logFcent; + troe = (troe_c + logPred) / (troe_n - 0.14 * (troe_c + logPred)); + F_troe = exp(M_LN10 * logFcent / (1.0 + troe * troe)); + Corr = F * F_troe; + qf[3] *= Corr * k_f; + qr[3] *= Corr * k_f * exp(-(g_RT[6] + g_RT[11] - g_RT[13])) * (refC); + // reaction 141: NO + OH <=> HONO + k_f = 3.06167047673713e+17 * + exp((-4.17057130369966) * logT - (814.305516509223) * invT); + qf[146] *= k_f; + qr[146] *= k_f * exp(-(g_RT[8] + g_RT[11] - g_RT[16])) * (refC); + // reaction 142: HNO <=> H + NO + k_f = 1.80302380411298e+20 * + exp((-3.00807431596138) * logT - (24093.7608096018) * invT); + qf[147] *= k_f; + qr[147] *= k_f * exp(-(-g_RT[4] - g_RT[11] + g_RT[14])) * (refCinv); + // reaction 143: H + HNO <=> H2 + NO + k_f = 968000 * exp((0.62) * logT - (181.157999689699) * invT); + qf[148] *= k_f; + qr[148] *= k_f * exp(-(-g_RT[3] + g_RT[4] - g_RT[11] + g_RT[14])); + // reaction 144: HNO + O <=> NO + OH + k_f = 22900000; + qf[149] *= k_f; + qr[149] *= k_f * exp(-(g_RT[6] - g_RT[8] - g_RT[11] + g_RT[14])); + // reaction 145: HNO + OH <=> H + HONO + k_f = 0.00147617423719835 * + exp((2.72022852147986) * logT - (2291.20021238776) * invT); + qf[150] *= k_f; + qr[150] *= k_f * exp(-(-g_RT[4] + g_RT[8] + g_RT[14] - g_RT[16])); + // reaction 146: HNO + OH <=> H2O + NO + k_f = 62955.2322092157 * + exp((0.390114260739931) * logT - (1903.061933838) * invT); + qf[151] *= k_f; + qr[151] *= k_f * exp(-(-g_RT[7] + g_RT[8] - g_RT[11] + g_RT[14])); + // reaction 147: HNO + O2 <=> HO2 + NO + k_f = 20000000 * exp(-(7495.9154538271) * invT); + qf[152] *= k_f; + qr[152] *= k_f * exp(-(g_RT[5] - g_RT[10] - g_RT[11] + g_RT[14])); + // reaction 148: HNO + NH2 <=> NH3 + NO + k_f = 36.7 * exp((1.63) * logT - (-629.0208322559) * invT); + qf[153] *= k_f; + qr[153] *= k_f * exp(-(-g_RT[11] + g_RT[14] - g_RT[22] + g_RT[28])); + // reaction 149: HNO + NO <=> N2O + OH + k_f = 8510000 * exp(-(14900.2454744777) * invT); + qf[154] *= k_f; + qr[154] *= k_f * exp(-(-g_RT[8] + g_RT[11] - g_RT[12] + g_RT[14])); + // reaction 150: HNO + NO2 <=> HONO + NO + k_f = 0.0442 * exp((2.64) * logT - (2033.80047651635) * invT); + qf[155] *= k_f; + qr[155] *= k_f * exp(-(-g_RT[11] + g_RT[13] + g_RT[14] - g_RT[16])); + // reaction 151: HNO + NO2 <=> HNO2 + NO + k_f = 603000 * exp(-(1001.40116495139) * invT); + qf[156] *= k_f; + qr[156] *= k_f * exp(-(-g_RT[11] + g_RT[13] + g_RT[14] - g_RT[15])); + // reaction 152: 2 HNO <=> H2O + N2O + k_f = 843 * exp(-(1559.97166399463) * invT); + qf[157] *= k_f; + qr[157] *= k_f * exp(-(-g_RT[7] - g_RT[12] + 2.000000 * g_RT[14])); + // reaction 153: HNO + HO2 <=> HNO2 + OH + k_f = 0.002 * exp((2.36) * logT - (4518.88565892638) * invT); + qf[158] *= k_f; + qr[158] *= k_f * exp(-(-g_RT[8] + g_RT[10] + g_RT[14] - g_RT[15])); + // reaction 154: H + HONO <=> H2 + NO2 + k_f = 0.00189 * exp((2.83) * logT - (715.926350440375) * invT); + qf[159] *= k_f; + qr[159] *= k_f * exp(-(-g_RT[3] + g_RT[4] - g_RT[13] + g_RT[16])); + // reaction 155: H + HNO2 <=> H2 + NO2 + k_f = 0.0233 * exp((2.77) * logT - (-1017.45377659056) * invT); + qf[160] *= k_f; + qr[160] *= k_f * exp(-(-g_RT[3] + g_RT[4] - g_RT[13] + g_RT[15])); + // reaction 156: H + HONO <=> H2O + NO + k_f = 4296.07864215026 * + exp((0.980114260739931) * logT - (2047.98258379891) * invT); + qf[161] *= k_f; + qr[161] *= k_f * exp(-(g_RT[4] - g_RT[7] - g_RT[11] + g_RT[16])); + // reaction 157: HONO + O <=> NO2 + OH + k_f = 12100000 * exp(-(2999.17132819613) * invT); + qf[162] *= k_f; + qr[162] *= k_f * exp(-(g_RT[6] - g_RT[8] - g_RT[13] + g_RT[16])); + // reaction 158: HONO + OH <=> H2O + NO2 + k_f = 1700000 * exp(-(-261.672666218454) * invT); + qf[163] *= k_f; + qr[163] *= k_f * exp(-(-g_RT[7] + g_RT[8] - g_RT[13] + g_RT[16])); + // reaction 159: HONO + NH <=> NH2 + NO2 + k_f = 10000000; + qf[164] *= k_f; + qr[164] *= k_f * exp(-(-g_RT[13] + g_RT[16] + g_RT[26] - g_RT[28])); + // reaction 160: HONO + NH2 <=> NH3 + NO2 + k_f = 0.000317 * exp((2.83) * logT - (-1796.48349692285) * invT); + qf[165] *= k_f; + qr[165] *= k_f * exp(-(-g_RT[13] + g_RT[16] - g_RT[22] + g_RT[28])); + // reaction 161: 2 HONO => H2O + NO + NO2 + k_f = 3.49e-07 * exp((3.64) * logT - (6108.34581953717) * invT); + qf[166] *= k_f; + qr[166] *= k_f * + exp(-(-g_RT[7] - g_RT[11] - g_RT[13] + 2.000000 * g_RT[16])) * + (refCinv); + // reaction 162: H2NO <=> HNOH + k_f = 1.27962488454253e+27 * + exp((-4.98971416937931) * logT - (22132.033206478) * invT); + qf[167] *= k_f; + qr[167] *= k_f * exp(-(-g_RT[21] + g_RT[29])); + // reaction 163: H2NO + M <=> H + HNO + M + k_f = 2.8e+18 * exp((-2.83) * logT - (32696.4525389951) * invT); + Corr = mixture + (9) * sc[7]; + qf[13] *= Corr * k_f; + qr[13] *= Corr * k_f * exp(-(-g_RT[4] - g_RT[14] + g_RT[29])) * (refCinv); + // reaction 164: H + H2NO <=> H2 + HNO + k_f = 480 * exp((1.5) * logT - (784.917355322202) * invT); + qf[168] *= k_f; + qr[168] *= k_f * exp(-(-g_RT[3] + g_RT[4] - g_RT[14] + g_RT[29])); + // reaction 165: H + H2NO <=> NH2 + OH + k_f = 40000000; + qf[169] *= k_f; + qr[169] *= k_f * exp(-(g_RT[4] - g_RT[8] - g_RT[28] + g_RT[29])); + // reaction 166: H2NO + O <=> HNO + OH + k_f = 330 * exp((1.5) * logT - (244.965872913738) * invT); + qf[170] *= k_f; + qr[170] *= k_f * exp(-(g_RT[6] - g_RT[8] - g_RT[14] + g_RT[29])); + // reaction 167: H2NO + OH <=> H2O + HNO + k_f = 2.4 * exp((2) * logT - (599.934908972387) * invT); + qf[171] *= k_f; + qr[171] *= k_f * exp(-(-g_RT[7] + g_RT[8] - g_RT[14] + g_RT[29])); + // reaction 168: H2NO + NO <=> 2 HNO + k_f = 0.02 * exp((2) * logT - (6541.81665546136) * invT); + qf[172] *= k_f; + qr[172] *= k_f * exp(-(g_RT[11] - 2.000000 * g_RT[14] + g_RT[29])); + // reaction 169: H2NO + NO2 <=> HNO + HONO + k_f = 600000 * exp(-(1006.43333160944) * invT); + qf[173] *= k_f; + qr[173] *= k_f * exp(-(g_RT[13] - g_RT[14] - g_RT[16] + g_RT[29])); + // reaction 170: H2NO + NH2 <=> HNO + NH3 + k_f = 1.8 * exp((1.94) * logT - (-291.865666166737) * invT); + qf[174] *= k_f; + qr[174] *= k_f * exp(-(-g_RT[14] - g_RT[22] + g_RT[28] + g_RT[29])); + // reaction 171: H2NO + O2 <=> HNO + HO2 + k_f = 0.00023 * exp((2.994) * logT - (8303.07498577788) * invT); + qf[175] *= k_f; + qr[175] *= k_f * exp(-(g_RT[5] - g_RT[10] - g_RT[14] + g_RT[29])); + // reaction 172: H2NO + HO2 <=> H2O2 + HNO + k_f = 0.336 * exp((2) * logT - (-721.612698763968) * invT); + qf[176] *= k_f; + qr[176] *= k_f * exp(-(-g_RT[9] + g_RT[10] - g_RT[14] + g_RT[29])); + // reaction 173: H + NO3 <=> NO2 + OH + k_f = 66100000; + qf[177] *= k_f; + qr[177] *= k_f * exp(-(g_RT[4] - g_RT[8] - g_RT[13] + g_RT[25])); + // reaction 174: NO3 + O <=> NO2 + O2 + k_f = 10240000; + qf[178] *= k_f; + qr[178] *= k_f * exp(-(-g_RT[5] + g_RT[6] - g_RT[13] + g_RT[25])); + // reaction 175: NO3 + OH <=> HO2 + NO2 + k_f = 14000000; + qf[179] *= k_f; + qr[179] *= k_f * exp(-(g_RT[8] - g_RT[10] - g_RT[13] + g_RT[25])); + // reaction 176: HO2 + NO3 => NO2 + O2 + OH + k_f = 1510000; + qf[180] *= k_f; + qr[180] *= k_f * exp(-(-g_RT[5] - g_RT[8] + g_RT[10] - g_RT[13] + g_RT[25])) * + (refCinv); + // reaction 177: NO3 + NO2 => NO + O2 + NO2 + k_f = 57300 * exp(-(1409.00666425321) * invT); + qf[14] *= k_f; + qr[14] *= k_f * exp(-(-g_RT[5] - g_RT[11] + g_RT[25])) * (refCinv); + // reaction 178: NO3 <=> NO + O2 + k_f = 2500000 * exp(-(6098.9859895532) * invT); + qf[181] *= k_f; + qr[181] *= k_f * exp(-(-g_RT[5] - g_RT[11] + g_RT[25])) * (refCinv); + // reaction 179: 2 NO3 => 2 NO2 + O2 + k_f = 512000 * exp(-(2450.66516246898) * invT); + qf[182] *= k_f; + qr[182] *= k_f * + exp(-(-g_RT[5] - 2.000000 * g_RT[13] + 2.000000 * g_RT[25])) * + (refCinv); + // reaction 180: H + NO2 <=> NO + OH + k_f = 88500000; + qf[183] *= k_f; + qr[183] *= k_f * exp(-(g_RT[4] - g_RT[8] - g_RT[11] + g_RT[13])); + // reaction 181: NO2 + O <=> NO + O2 + k_f = 3920000 * exp(-(-119.765566461523) * invT); + qf[184] *= k_f; + qr[184] *= k_f * exp(-(-g_RT[5] + g_RT[6] - g_RT[11] + g_RT[13])); + // reaction 182: NO2 + O (+M) <=> NO3 (+M) + k_f = 3500000 * exp((0.24) * logT); + Corr = mixture; + redP = Corr / k_f * 250000000 * exp(-1.5 * logT); + F = redP / (1.0 + redP); + logPred = log10(redP); + logFcent = log10( + (0.29) * exp(-T * 1e+30) + 0.71 * exp(-T * 0.000588235294117647) + + exp(-1e+30 * invT)); + troe_c = -0.4 - 0.67 * logFcent; + troe_n = 0.75 - 1.27 * logFcent; + troe = (troe_c + logPred) / (troe_n - 0.14 * (troe_c + logPred)); + F_troe = exp(M_LN10 * logFcent / (1.0 + troe * troe)); + Corr = F * F_troe; + qf[4] *= Corr * k_f; + qr[4] *= Corr * k_f * exp(-(g_RT[6] + g_RT[13] - g_RT[25])) * (refC); + // reaction 183: HO2 + NO2 <=> HONO + O2 + k_f = 1.9e-06 * exp((3.32) * logT - (1531.79153070957) * invT); + qf[185] *= k_f; + qr[185] *= k_f * exp(-(-g_RT[5] + g_RT[10] + g_RT[13] - g_RT[16])); + // reaction 184: HO2 + NO2 <=> HNO2 + O2 + k_f = 1.9e-05 * exp((3.26) * logT - (2507.52864570492) * invT); + qf[186] *= k_f; + qr[186] *= k_f * exp(-(-g_RT[5] + g_RT[10] + g_RT[13] - g_RT[15])); + // reaction 185: 2 NO2 => 2 NO + O2 + k_f = 1630000 * exp(-(13098.7298108969) * invT); + qf[187] *= k_f; + qr[187] *= k_f * + exp(-(-g_RT[5] - 2.000000 * g_RT[11] + 2.000000 * g_RT[13])) * + (refCinv); + // reaction 186: 2 NO2 <=> NO + NO3 + k_f = 10000000 * exp(-(12982.9899777618) * invT); + qf[188] *= k_f; + qr[188] *= k_f * exp(-(-g_RT[11] + 2.000000 * g_RT[13] - g_RT[25])); + // reaction 187: N2O (+M) <=> N2 + O (+M) + k_f = 99000000000 * exp(-(29136.7481667591) * invT); + Corr = mixture + (0.7) * sc[1] + (0.4) * sc[5] + (11) * sc[7]; + redP = Corr / k_f * 602000000 * exp(-(28906.7781504863) * invT); + Corr = redP / (1. + redP); + qf[6] *= Corr * k_f; + qr[6] *= Corr * k_f * exp(-(-g_RT[1] - g_RT[6] + g_RT[12])) * (refCinv); + // reaction 188: H + N2O <=> N2 + OH + k_f = 25300 * exp(-(2289.63582941147) * invT); + qf[189] *= k_f; + qr[189] *= k_f * exp(-(-g_RT[1] + g_RT[4] - g_RT[8] + g_RT[12])); + // reaction 189: H + N2O <=> N2 + OH + k_f = 500000000 * exp(-(9108.22165106543) * invT); + qf[190] *= k_f; + qr[190] *= k_f * exp(-(-g_RT[1] + g_RT[4] - g_RT[8] + g_RT[12])); + // reaction 190: N2O + O <=> 2 NO + k_f = 66200000 * exp(-(13400.6598103797) * invT); + qf[191] *= k_f; + qr[191] *= k_f * exp(-(g_RT[6] - 2.000000 * g_RT[11] + g_RT[12])); + // reaction 191: N2O + O <=> N2 + O2 + k_f = 102000000 * exp(-(14100.1309758482) * invT); + qf[192] *= k_f; + qr[192] *= k_f * exp(-(-g_RT[1] - g_RT[5] + g_RT[6] + g_RT[12])); + // reaction 192: N2O + OH <=> HO2 + N2 + k_f = 1e-08 * exp((4.72) * logT - (18397.6013018206) * invT); + qf[193] *= k_f; + qr[193] *= k_f * exp(-(-g_RT[1] + g_RT[8] - g_RT[10] + g_RT[12])); + // reaction 193: N2O + NO <=> N2 + NO2 + k_f = 0.525 * exp((2.23) * logT - (23298.9316267585) * invT); + qf[194] *= k_f; + qr[194] *= k_f * exp(-(-g_RT[1] + g_RT[11] + g_RT[12] - g_RT[13])); + // reaction 194: HNO2 + O <=> NO2 + OH + k_f = 170 * exp((1.5) * logT - (1190.30870129448) * invT); + qf[195] *= k_f; + qr[195] *= k_f * exp(-(g_RT[6] - g_RT[8] - g_RT[13] + g_RT[15])); + // reaction 195: HNO2 + OH <=> H2O + NO2 + k_f = 1.2 * exp((2) * logT - (-399.956605981591) * invT); + qf[196] *= k_f; + qr[196] *= k_f * exp(-(-g_RT[7] + g_RT[8] - g_RT[13] + g_RT[15])); + // reaction 196: HNO2 <=> HONO + k_f = 1.64828721239033e+30 * + exp((-6.47811251253514) * logT - (22326.026173795) * invT); + qf[197] *= k_f; + qr[197] *= k_f * exp(-(g_RT[15] - g_RT[16])); + // reaction 197: HNO2 + NH2 <=> NH3 + NO2 + k_f = 28000 * exp(-(-2898.52799503519) * invT); + qf[198] *= k_f; + qr[198] *= k_f * exp(-(-g_RT[13] + g_RT[15] - g_RT[22] + g_RT[28])); + // reaction 198: H + HNO2 <=> H2O + NO + k_f = 3380.11409397342 * exp((1.07) * logT - (2800.41224478498) * invT); + qf[199] *= k_f; + qr[199] *= k_f * exp(-(g_RT[4] - g_RT[7] - g_RT[11] + g_RT[15])); + // reaction 199: H + HNO2 <=> HNO + OH + k_f = 36.4965581754801 * exp((1.78) * logT - (2802.89957915971) * invT); + qf[200] *= k_f; + qr[200] *= k_f * exp(-(g_RT[4] - g_RT[8] - g_RT[14] + g_RT[15])); + // reaction 200: NO + OH <=> HNO2 + k_f = 1437278448551.32 * + exp((-3.03239947553856) * logT - (1958.298666124) * invT); + qf[201] *= k_f; + qr[201] *= k_f * exp(-(g_RT[8] + g_RT[11] - g_RT[15])) * (refC); + // reaction 201: NO2 + OH (+M) <=> HONO2 (+M) + k_f = 30000000; + Corr = mixture; + redP = Corr / k_f * 29380000000000 * exp(-3 * logT); + F = redP / (1.0 + redP); + logPred = log10(redP); + logFcent = + log10((0.6) * exp(-T * 1e+30) + 0.4 * exp(-T * 1e-30) + exp(-1e+30 * invT)); + troe_c = -0.4 - 0.67 * logFcent; + troe_n = 0.75 - 1.27 * logFcent; + troe = (troe_c + logPred) / (troe_n - 0.14 * (troe_c + logPred)); + F_troe = exp(M_LN10 * logFcent / (1.0 + troe * troe)); + Corr = F * F_troe; + qf[5] *= Corr * k_f; + qr[5] *= Corr * k_f * exp(-(g_RT[8] + g_RT[13] - g_RT[17])) * (refC); + // reaction 202: HONO2 + OH <=> H2O + NO3 + k_f = 9040 * exp(-(-623.988665597852) * invT); + qf[202] *= k_f; + qr[202] *= k_f * exp(-(-g_RT[7] + g_RT[8] + g_RT[17] - g_RT[25])); +} + +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +productionRate(amrex::Real* wdot, const amrex::Real* sc, const amrex::Real T) +{ + const amrex::Real invT = 1.0 / T; + const amrex::Real logT = log(T); + + // reference concentration: P_atm / (RT) in inverse mol/m^3 + const amrex::Real refC = 101325 / 8.31446 * invT; + const amrex::Real refCinv = 1 / refC; + + for (int i = 0; i < 31; ++i) { + wdot[i] = 0.0; + } + + // compute the mixture concentration + amrex::Real mixture = 0.0; + for (int i = 0; i < 31; ++i) { + mixture += sc[i]; + } + + // compute the Gibbs free energy + amrex::Real g_RT[31]; + gibbs(g_RT, T); + + { + // reaction 8: H2O2 (+M) <=> 2 OH (+M) + const amrex::Real k_f = + 2000000000000 * exp((0.9) * logT - (24531.3092413143) * invT); + amrex::Real Corr = mixture + (0.5) * sc[1] + (-0.35) * sc[2] + + (2.7) * sc[3] + (0.2) * sc[5] + (6.65) * sc[7] + + (6.7) * sc[9]; + const amrex::Real redP = + Corr / k_f * 2.49e+18 * exp(-2.3 * logT - 24531.3092413143 * invT); + const amrex::Real F = redP / (1.0 + redP); + const amrex::Real logPred = log10(redP); + const amrex::Real logFcent = + log10(0.57 * exp(-T * 1e+30) + 0.43 * exp(-T * 1e-30) + 0.0); + const amrex::Real troe_c = -0.4 - 0.67 * logFcent; + const amrex::Real troe_n = 0.75 - 1.27 * logFcent; + const amrex::Real troe = + (troe_c + logPred) / (troe_n - 0.14 * (troe_c + logPred)); + const amrex::Real F_troe = exp(M_LN10 * logFcent / (1.0 + troe * troe)); + Corr = F * F_troe; + const amrex::Real qf = Corr * k_f * (sc[9]); + const amrex::Real qr = Corr * k_f * exp(-(-2.000000 * g_RT[8] + g_RT[9])) * + (refCinv) * ((sc[8] * sc[8])); + const amrex::Real qdot = qf - qr; + wdot[8] += 2.000000 * qdot; + wdot[9] -= qdot; + } + + { + // reaction 21: H + O2 (+M) <=> HO2 (+M) + const amrex::Real k_f = 4650000 * exp((0.44) * logT); + amrex::Real Corr = + mixture + (-0.5) * sc[0] + (-0.36) * sc[2] + (0.3) * sc[3] + (9) * sc[7]; + const amrex::Real redP = Corr / k_f * 17370000 * exp(-1.23 * logT); + const amrex::Real F = redP / (1.0 + redP); + const amrex::Real logPred = log10(redP); + const amrex::Real logFcent = log10( + 0.33 * exp(-T * 1e+30) + 0.67 * exp(-T * 1e-30) + exp(-1e+30 * invT)); + const amrex::Real troe_c = -0.4 - 0.67 * logFcent; + const amrex::Real troe_n = 0.75 - 1.27 * logFcent; + const amrex::Real troe = + (troe_c + logPred) / (troe_n - 0.14 * (troe_c + logPred)); + const amrex::Real F_troe = exp(M_LN10 * logFcent / (1.0 + troe * troe)); + Corr = F * F_troe; + const amrex::Real qf = Corr * k_f * (sc[4] * sc[5]); + const amrex::Real qr = + Corr * k_f * exp(-(g_RT[4] + g_RT[5] - g_RT[10])) * (refC) * (sc[10]); + const amrex::Real qdot = qf - qr; + wdot[4] -= qdot; + wdot[5] -= qdot; + wdot[10] += qdot; + } + + { + // reaction 47: NH2OH (+M) <=> NH2 + OH (+M) + const amrex::Real k_f = + 1.4e+20 * exp((-1.31) * logT - (32246.1239447664) * invT); + amrex::Real Corr = mixture; + const amrex::Real redP = + Corr / k_f * 5.4e+31 * exp(-5.96 * logT - 33606.3185924366 * invT); + const amrex::Real F = redP / (1.0 + redP); + const amrex::Real logPred = log10(redP); + const amrex::Real logFcent = log10( + 0.65 * exp(-T * 1e+30) + 0.35 * exp(-T * 1e-30) + exp(-1e+30 * invT)); + const amrex::Real troe_c = -0.4 - 0.67 * logFcent; + const amrex::Real troe_n = 0.75 - 1.27 * logFcent; + const amrex::Real troe = + (troe_c + logPred) / (troe_n - 0.14 * (troe_c + logPred)); + const amrex::Real F_troe = exp(M_LN10 * logFcent / (1.0 + troe * troe)); + Corr = F * F_troe; + const amrex::Real qf = Corr * k_f * (sc[20]); + const amrex::Real qr = Corr * k_f * exp(-(-g_RT[8] + g_RT[20] - g_RT[28])) * + (refCinv) * (sc[8] * sc[28]); + const amrex::Real qdot = qf - qr; + wdot[8] += qdot; + wdot[20] -= qdot; + wdot[28] += qdot; + } + + { + // reaction 140: NO + O (+M) <=> NO2 (+M) + const amrex::Real k_f = 1300000000 * exp((-0.75) * logT); + amrex::Real Corr = mixture + (0.7) * sc[1] + (0.5) * sc[5] + (9) * sc[7]; + const amrex::Real redP = + Corr / k_f * 4720000000000 * exp(-2.87 * logT - 779.985831997315 * invT); + const amrex::Real F = redP / (1.0 + redP); + const amrex::Real logPred = log10(redP); + const amrex::Real logFcent = log10( + 0.25 * exp(-T * 0.001) + 0.75 * exp(-T * 1e-05) + exp(-1e+30 * invT)); + const amrex::Real troe_c = -0.4 - 0.67 * logFcent; + const amrex::Real troe_n = 0.75 - 1.27 * logFcent; + const amrex::Real troe = + (troe_c + logPred) / (troe_n - 0.14 * (troe_c + logPred)); + const amrex::Real F_troe = exp(M_LN10 * logFcent / (1.0 + troe * troe)); + Corr = F * F_troe; + const amrex::Real qf = Corr * k_f * (sc[6] * sc[11]); + const amrex::Real qr = + Corr * k_f * exp(-(g_RT[6] + g_RT[11] - g_RT[13])) * (refC) * (sc[13]); + const amrex::Real qdot = qf - qr; + wdot[6] -= qdot; + wdot[11] -= qdot; + wdot[13] += qdot; + } + + { + // reaction 182: NO2 + O (+M) <=> NO3 (+M) + const amrex::Real k_f = 3500000 * exp((0.24) * logT); + amrex::Real Corr = mixture; + const amrex::Real redP = Corr / k_f * 250000000 * exp(-1.5 * logT); + const amrex::Real F = redP / (1.0 + redP); + const amrex::Real logPred = log10(redP); + const amrex::Real logFcent = log10( + 0.29 * exp(-T * 1e+30) + 0.71 * exp(-T * 0.000588235294117647) + + exp(-1e+30 * invT)); + const amrex::Real troe_c = -0.4 - 0.67 * logFcent; + const amrex::Real troe_n = 0.75 - 1.27 * logFcent; + const amrex::Real troe = + (troe_c + logPred) / (troe_n - 0.14 * (troe_c + logPred)); + const amrex::Real F_troe = exp(M_LN10 * logFcent / (1.0 + troe * troe)); + Corr = F * F_troe; + const amrex::Real qf = Corr * k_f * (sc[6] * sc[13]); + const amrex::Real qr = + Corr * k_f * exp(-(g_RT[6] + g_RT[13] - g_RT[25])) * (refC) * (sc[25]); + const amrex::Real qdot = qf - qr; + wdot[6] -= qdot; + wdot[13] -= qdot; + wdot[25] += qdot; + } + + { + // reaction 201: NO2 + OH (+M) <=> HONO2 (+M) + const amrex::Real k_f = 30000000; + amrex::Real Corr = mixture; + const amrex::Real redP = Corr / k_f * 29380000000000 * exp(-3 * logT); + const amrex::Real F = redP / (1.0 + redP); + const amrex::Real logPred = log10(redP); + const amrex::Real logFcent = + log10(0.6 * exp(-T * 1e+30) + 0.4 * exp(-T * 1e-30) + exp(-1e+30 * invT)); + const amrex::Real troe_c = -0.4 - 0.67 * logFcent; + const amrex::Real troe_n = 0.75 - 1.27 * logFcent; + const amrex::Real troe = + (troe_c + logPred) / (troe_n - 0.14 * (troe_c + logPred)); + const amrex::Real F_troe = exp(M_LN10 * logFcent / (1.0 + troe * troe)); + Corr = F * F_troe; + const amrex::Real qf = Corr * k_f * (sc[8] * sc[13]); + const amrex::Real qr = + Corr * k_f * exp(-(g_RT[8] + g_RT[13] - g_RT[17])) * (refC) * (sc[17]); + const amrex::Real qdot = qf - qr; + wdot[8] -= qdot; + wdot[13] -= qdot; + wdot[17] += qdot; + } + + { + // reaction 187: N2O (+M) <=> N2 + O (+M) + const amrex::Real k_f = 99000000000 * exp(-(29136.7481667591) * invT); + amrex::Real Corr = mixture + (0.7) * sc[1] + (0.4) * sc[5] + (11) * sc[7]; + const amrex::Real redP = + Corr / k_f * 602000000 * exp(-28906.7781504863 * invT); + Corr = redP / (1.0 + redP); + const amrex::Real qf = Corr * k_f * (sc[12]); + const amrex::Real qr = Corr * k_f * exp(-(-g_RT[1] - g_RT[6] + g_RT[12])) * + (refCinv) * (sc[1] * sc[6]); + const amrex::Real qdot = qf - qr; + wdot[1] += qdot; + wdot[6] += qdot; + wdot[12] -= qdot; + } + + { + // reaction 0: H2 + M <=> 2 H + M + const amrex::Real k_f = + 45770000000000 * exp((-1.4) * logT - (52535.8199100127) * invT); + const amrex::Real Corr = + mixture + (-0.17) * sc[2] + (1.5) * sc[3] + (11) * sc[7]; + const amrex::Real qf = Corr * k_f * (sc[3]); + const amrex::Real qr = Corr * k_f * exp(-(g_RT[3] - 2.000000 * g_RT[4])) * + (refCinv) * ((sc[4] * sc[4])); + const amrex::Real qdot = qf - qr; + wdot[3] -= qdot; + wdot[4] += 2.000000 * qdot; + } + + { + // reaction 3: 2 O + M <=> O2 + M + const amrex::Real k_f = 6165 * exp((-0.5) * logT); + const amrex::Real Corr = mixture + (-0.17) * sc[0] + (-0.17) * sc[2] + + (1.5) * sc[3] + (11) * sc[7]; + const amrex::Real qf = Corr * k_f * ((sc[6] * sc[6])); + const amrex::Real qr = + Corr * k_f * exp(-(-g_RT[5] + 2.000000 * g_RT[6])) * (refC) * (sc[5]); + const amrex::Real qdot = qf - qr; + wdot[5] += qdot; + wdot[6] -= 2.000000 * qdot; + } + + { + // reaction 5: H + OH + M <=> H2O + M + const amrex::Real k_f = 35000000000 * exp((-2) * logT); + const amrex::Real Corr = + mixture + (-0.62) * sc[0] + (-0.27) * sc[3] + (2.65) * sc[7]; + const amrex::Real qf = Corr * k_f * (sc[4] * sc[8]); + const amrex::Real qr = + Corr * k_f * exp(-(g_RT[4] - g_RT[7] + g_RT[8])) * (refC) * (sc[7]); + const amrex::Real qdot = qf - qr; + wdot[4] -= qdot; + wdot[7] += qdot; + wdot[8] -= qdot; + } + + { + // reaction 7: H + O + M <=> OH + M + const amrex::Real k_f = 4714000 * exp((-1) * logT); + const amrex::Real Corr = mixture + (-0.25) * sc[0] + (-0.25) * sc[2] + + (1.5) * sc[3] + (11) * sc[7]; + const amrex::Real qf = Corr * k_f * (sc[4] * sc[6]); + const amrex::Real qr = + Corr * k_f * exp(-(g_RT[4] + g_RT[6] - g_RT[8])) * (refC) * (sc[8]); + const amrex::Real qdot = qf - qr; + wdot[4] -= qdot; + wdot[6] -= qdot; + wdot[8] += qdot; + } + + { + // reaction 22: O + OH + M <=> HO2 + M + const amrex::Real k_f = 10000; + const amrex::Real Corr = mixture; + const amrex::Real qf = Corr * k_f * (sc[6] * sc[8]); + const amrex::Real qr = + Corr * k_f * exp(-(g_RT[6] + g_RT[8] - g_RT[10])) * (refC) * (sc[10]); + const amrex::Real qdot = qf - qr; + wdot[6] -= qdot; + wdot[8] -= qdot; + wdot[10] += qdot; + } + + { + // reaction 60: HNOH + M <=> H + HNO + M + const amrex::Real k_f = + 2e+18 * exp((-2.84) * logT - (29656.5709825354) * invT); + const amrex::Real Corr = mixture; + const amrex::Real qf = Corr * k_f * (sc[21]); + const amrex::Real qr = Corr * k_f * exp(-(-g_RT[4] - g_RT[14] + g_RT[21])) * + (refCinv) * (sc[4] * sc[14]); + const amrex::Real qdot = qf - qr; + wdot[4] += qdot; + wdot[14] += qdot; + wdot[21] -= qdot; + } + + { + // reaction 163: H2NO + M <=> H + HNO + M + const amrex::Real k_f = + 2.8e+18 * exp((-2.83) * logT - (32696.4525389951) * invT); + const amrex::Real Corr = mixture + (9) * sc[7]; + const amrex::Real qf = Corr * k_f * (sc[29]); + const amrex::Real qr = Corr * k_f * exp(-(-g_RT[4] - g_RT[14] + g_RT[29])) * + (refCinv) * (sc[4] * sc[14]); + const amrex::Real qdot = qf - qr; + wdot[4] += qdot; + wdot[14] += qdot; + wdot[29] -= qdot; + } + + { + // reaction 177: NO3 + NO2 => NO + O2 + NO2 + const amrex::Real k_f = 57300 * exp(-(1409.00666425321) * invT); + const amrex::Real qf = k_f * (sc[13] * sc[25]); + const amrex::Real qr = 0.0; + const amrex::Real qdot = qf - qr; + wdot[5] += qdot; + wdot[11] += qdot; + wdot[25] -= qdot; + } + + { + // reaction 1: H2 + O <=> H + OH + const amrex::Real k_f = + 0.0508 * exp((2.67) * logT - (3166.2392612433) * invT); + const amrex::Real qf = k_f * (sc[3] * sc[6]); + const amrex::Real qr = + k_f * exp(-(g_RT[3] - g_RT[4] + g_RT[6] - g_RT[8])) * (sc[4] * sc[8]); + const amrex::Real qdot = qf - qr; + wdot[3] -= qdot; + wdot[4] += qdot; + wdot[6] -= qdot; + wdot[8] += qdot; + } + + { + // reaction 2: H2 + OH <=> H + H2O + const amrex::Real k_f = 43800000 * exp(-(3517.48449397499) * invT); + const amrex::Real qf = k_f * (sc[3] * sc[8]); + const amrex::Real qr = + k_f * exp(-(g_RT[3] - g_RT[4] - g_RT[7] + g_RT[8])) * (sc[4] * sc[7]); + const amrex::Real qdot = qf - qr; + wdot[3] -= qdot; + wdot[4] += qdot; + wdot[7] += qdot; + wdot[8] -= qdot; + } + + { + // reaction 4: H + O2 <=> O + OH + const amrex::Real k_f = 114000000 * exp(-(7692.16995349094) * invT); + const amrex::Real qf = k_f * (sc[4] * sc[5]); + const amrex::Real qr = + k_f * exp(-(g_RT[4] + g_RT[5] - g_RT[6] - g_RT[8])) * (sc[6] * sc[8]); + const amrex::Real qdot = qf - qr; + wdot[4] -= qdot; + wdot[5] -= qdot; + wdot[6] += qdot; + wdot[8] += qdot; + } + + { + // reaction 6: H2O + O <=> 2 OH + const amrex::Real k_f = + 67 * exp((1.704) * logT - (7541.60752708217) * invT); + const amrex::Real qf = k_f * (sc[6] * sc[7]); + const amrex::Real qr = + k_f * exp(-(g_RT[6] + g_RT[7] - 2.000000 * g_RT[8])) * ((sc[8] * sc[8])); + const amrex::Real qdot = qf - qr; + wdot[6] -= qdot; + wdot[7] -= qdot; + wdot[8] += 2.000000 * qdot; + } + + { + // reaction 9: H + H2O2 <=> H2O + OH + const amrex::Real k_f = 24100000 * exp(-(1997.77016324474) * invT); + const amrex::Real qf = k_f * (sc[4] * sc[9]); + const amrex::Real qr = + k_f * exp(-(g_RT[4] - g_RT[7] - g_RT[8] + g_RT[9])) * (sc[7] * sc[8]); + const amrex::Real qdot = qf - qr; + wdot[4] -= qdot; + wdot[7] += qdot; + wdot[8] += qdot; + wdot[9] -= qdot; + } + + { + // reaction 10: H + H2O2 <=> H2 + HO2 + const amrex::Real k_f = 21500 * exp((1) * logT - (3019.29999482832) * invT); + const amrex::Real qf = k_f * (sc[4] * sc[9]); + const amrex::Real qr = + k_f * exp(-(-g_RT[3] + g_RT[4] + g_RT[9] - g_RT[10])) * (sc[3] * sc[10]); + const amrex::Real qdot = qf - qr; + wdot[3] += qdot; + wdot[4] -= qdot; + wdot[9] -= qdot; + wdot[10] += qdot; + } + + { + // reaction 11: H2O2 + O <=> HO2 + OH + const amrex::Real k_f = 9.55 * exp((2) * logT - (1997.77016324474) * invT); + const amrex::Real qf = k_f * (sc[6] * sc[9]); + const amrex::Real qr = + k_f * exp(-(g_RT[6] - g_RT[8] + g_RT[9] - g_RT[10])) * (sc[8] * sc[10]); + const amrex::Real qdot = qf - qr; + wdot[6] -= qdot; + wdot[8] += qdot; + wdot[9] -= qdot; + wdot[10] += qdot; + } + + { + // reaction 12: H2O2 + OH <=> H2O + HO2 + const amrex::Real k_f = 1740000 * exp(-(160.022899725901) * invT); + const amrex::Real qf = k_f * (sc[8] * sc[9]); + const amrex::Real qr = + k_f * exp(-(-g_RT[7] + g_RT[8] + g_RT[9] - g_RT[10])) * (sc[7] * sc[10]); + const amrex::Real qdot = qf - qr; + wdot[7] += qdot; + wdot[8] -= qdot; + wdot[9] -= qdot; + wdot[10] += qdot; + } + + { + // reaction 13: H2O2 + OH <=> H2O + HO2 + const amrex::Real k_f = 75900000 * exp(-(3657.88194373451) * invT); + const amrex::Real qf = k_f * (sc[8] * sc[9]); + const amrex::Real qr = + k_f * exp(-(-g_RT[7] + g_RT[8] + g_RT[9] - g_RT[10])) * (sc[7] * sc[10]); + const amrex::Real qdot = qf - qr; + wdot[7] += qdot; + wdot[8] -= qdot; + wdot[9] -= qdot; + wdot[10] += qdot; + } + + { + // reaction 14: H + HO2 <=> 2 OH + const amrex::Real k_f = 70790000 * exp(-(148.448916412392) * invT); + const amrex::Real qf = k_f * (sc[4] * sc[10]); + const amrex::Real qr = + k_f * exp(-(g_RT[4] - 2.000000 * g_RT[8] + g_RT[10])) * ((sc[8] * sc[8])); + const amrex::Real qdot = qf - qr; + wdot[4] -= qdot; + wdot[8] += 2.000000 * qdot; + wdot[10] -= qdot; + } + + { + // reaction 15: H + HO2 <=> H2 + O2 + const amrex::Real k_f = + 11402 * exp((1.0827) * logT - (278.671325189338) * invT); + const amrex::Real qf = k_f * (sc[4] * sc[10]); + const amrex::Real qr = + k_f * exp(-(-g_RT[3] + g_RT[4] - g_RT[5] + g_RT[10])) * (sc[3] * sc[5]); + const amrex::Real qdot = qf - qr; + wdot[3] += qdot; + wdot[4] -= qdot; + wdot[5] += qdot; + wdot[10] -= qdot; + } + + { + // reaction 16: HO2 + O <=> O2 + OH + const amrex::Real k_f = 32500000; + const amrex::Real qf = k_f * (sc[6] * sc[10]); + const amrex::Real qr = + k_f * exp(-(-g_RT[5] + g_RT[6] - g_RT[8] + g_RT[10])) * (sc[5] * sc[8]); + const amrex::Real qdot = qf - qr; + wdot[5] += qdot; + wdot[6] -= qdot; + wdot[8] += qdot; + wdot[10] -= qdot; + } + + { + // reaction 17: HO2 + OH <=> H2O + O2 + const amrex::Real k_f = 7000000 * exp(-(-549.995687057926) * invT); + const amrex::Real qf = k_f * (sc[8] * sc[10]); + const amrex::Real qr = + k_f * exp(-(-g_RT[5] - g_RT[7] + g_RT[8] + g_RT[10])) * (sc[5] * sc[7]); + const amrex::Real qdot = qf - qr; + wdot[5] += qdot; + wdot[7] += qdot; + wdot[8] -= qdot; + wdot[10] -= qdot; + } + + { + // reaction 18: HO2 + OH <=> H2O + O2 + const amrex::Real k_f = 450000000 * exp(-(5499.95687057926) * invT); + const amrex::Real qf = k_f * (sc[8] * sc[10]); + const amrex::Real qr = + k_f * exp(-(-g_RT[5] - g_RT[7] + g_RT[8] + g_RT[10])) * (sc[5] * sc[7]); + const amrex::Real qdot = qf - qr; + wdot[5] += qdot; + wdot[7] += qdot; + wdot[8] -= qdot; + wdot[10] -= qdot; + } + + { + // reaction 19: 2 HO2 <=> H2O2 + O2 + const amrex::Real k_f = 100000000 * exp(-(5555.95633080001) * invT); + const amrex::Real qf = k_f * ((sc[10] * sc[10])); + const amrex::Real qr = + k_f * exp(-(-g_RT[5] - g_RT[9] + 2.000000 * g_RT[10])) * (sc[5] * sc[9]); + const amrex::Real qdot = qf - qr; + wdot[5] += qdot; + wdot[9] += qdot; + wdot[10] -= 2.000000 * qdot; + } + + { + // reaction 20: 2 HO2 <=> H2O2 + O2 + const amrex::Real k_f = 190000 * exp(-(-708.994440225581) * invT); + const amrex::Real qf = k_f * ((sc[10] * sc[10])); + const amrex::Real qr = + k_f * exp(-(-g_RT[5] - g_RT[9] + 2.000000 * g_RT[10])) * (sc[5] * sc[9]); + const amrex::Real qdot = qf - qr; + wdot[5] += qdot; + wdot[9] += qdot; + wdot[10] -= 2.000000 * qdot; + } + + { + // reaction 23: NH3 <=> H + NH2 + const amrex::Real k_f = + 3.4656307097861e+30 * + exp((-5.22452592834206) * logT - (55938.3595884331) * invT); + const amrex::Real qf = k_f * (sc[22]); + const amrex::Real qr = k_f * exp(-(-g_RT[4] + g_RT[22] - g_RT[28])) * + (refCinv) * (sc[4] * sc[28]); + const amrex::Real qdot = qf - qr; + wdot[4] += qdot; + wdot[22] -= qdot; + wdot[28] += qdot; + } + + { + // reaction 24: H + NH2 <=> H2 + NH + const amrex::Real k_f = 40000000 * exp(-(1836.74083018723) * invT); + const amrex::Real qf = k_f * (sc[4] * sc[28]); + const amrex::Real qr = + k_f * exp(-(-g_RT[3] + g_RT[4] - g_RT[26] + g_RT[28])) * (sc[3] * sc[26]); + const amrex::Real qdot = qf - qr; + wdot[3] += qdot; + wdot[4] -= qdot; + wdot[26] += qdot; + wdot[28] -= qdot; + } + + { + // reaction 25: H + NH3 <=> H2 + NH2 + const amrex::Real k_f = + 0.01963 * exp((2.854) * logT - (4287.50663598937) * invT); + const amrex::Real qf = k_f * (sc[4] * sc[22]); + const amrex::Real qr = + k_f * exp(-(-g_RT[3] + g_RT[4] + g_RT[22] - g_RT[28])) * (sc[3] * sc[28]); + const amrex::Real qdot = qf - qr; + wdot[3] += qdot; + wdot[4] -= qdot; + wdot[22] -= qdot; + wdot[28] += qdot; + } + + { + // reaction 26: NH3 + OH <=> H2O + NH2 + const amrex::Real k_f = + 0.1559 * exp((2.372) * logT - (59.8324615641812) * invT); + const amrex::Real qf = k_f * (sc[8] * sc[22]); + const amrex::Real qr = + k_f * exp(-(-g_RT[7] + g_RT[8] + g_RT[22] - g_RT[28])) * (sc[7] * sc[28]); + const amrex::Real qdot = qf - qr; + wdot[7] += qdot; + wdot[8] -= qdot; + wdot[22] -= qdot; + wdot[28] += qdot; + } + + { + // reaction 27: NH3 + O <=> NH2 + OH + const amrex::Real k_f = + 0.000443 * exp((3.18) * logT - (3391.63000585723) * invT); + const amrex::Real qf = k_f * (sc[6] * sc[22]); + const amrex::Real qr = + k_f * exp(-(g_RT[6] - g_RT[8] + g_RT[22] - g_RT[28])) * (sc[8] * sc[28]); + const amrex::Real qdot = qf - qr; + wdot[6] -= qdot; + wdot[8] += qdot; + wdot[22] -= qdot; + wdot[28] += qdot; + } + + { + // reaction 28: HO2 + NH3 <=> H2O2 + NH2 + const amrex::Real k_f = + 1.173e-06 * exp((3.839) * logT - (8685.51965178946) * invT); + const amrex::Real qf = k_f * (sc[10] * sc[22]); + const amrex::Real qr = k_f * + exp(-(-g_RT[9] + g_RT[10] + g_RT[22] - g_RT[28])) * + (sc[9] * sc[28]); + const amrex::Real qdot = qf - qr; + wdot[9] += qdot; + wdot[10] -= qdot; + wdot[22] -= qdot; + wdot[28] += qdot; + } + + { + // reaction 29: NH3 + O2 <=> HO2 + NH2 + const amrex::Real k_f = + 14150 * exp((1.285) * logT - (27789.6371523998) * invT); + const amrex::Real qf = k_f * (sc[5] * sc[22]); + const amrex::Real qr = k_f * + exp(-(g_RT[5] - g_RT[10] + g_RT[22] - g_RT[28])) * + (sc[10] * sc[28]); + const amrex::Real qdot = qf - qr; + wdot[5] -= qdot; + wdot[10] += qdot; + wdot[22] -= qdot; + wdot[28] += qdot; + } + + { + // reaction 30: NH2 + O <=> H + HNO + const amrex::Real k_f = + 1500000000 * exp((-0.547) * logT - (421.041384278809) * invT); + const amrex::Real qf = k_f * (sc[6] * sc[28]); + const amrex::Real qr = + k_f * exp(-(-g_RT[4] + g_RT[6] - g_RT[14] + g_RT[28])) * (sc[4] * sc[14]); + const amrex::Real qdot = qf - qr; + wdot[4] += qdot; + wdot[6] -= qdot; + wdot[14] += qdot; + wdot[28] -= qdot; + } + + { + // reaction 31: NH2 + O <=> H + HNO + const amrex::Real k_f = + 77300000 * exp((-0.277) * logT - (325.279252776171) * invT); + const amrex::Real qf = k_f * (sc[6] * sc[28]); + const amrex::Real qr = + k_f * exp(-(-g_RT[4] + g_RT[6] - g_RT[14] + g_RT[28])) * (sc[4] * sc[14]); + const amrex::Real qdot = qf - qr; + wdot[4] += qdot; + wdot[6] -= qdot; + wdot[14] += qdot; + wdot[28] -= qdot; + } + + { + // reaction 32: NH2 + O <=> NH + OH + const amrex::Real k_f = 7000000; + const amrex::Real qf = k_f * (sc[6] * sc[28]); + const amrex::Real qr = + k_f * exp(-(g_RT[6] - g_RT[8] - g_RT[26] + g_RT[28])) * (sc[8] * sc[26]); + const amrex::Real qdot = qf - qr; + wdot[6] -= qdot; + wdot[8] += qdot; + wdot[26] += qdot; + wdot[28] -= qdot; + } + + { + // reaction 33: NH2 + O <=> NH + OH + const amrex::Real k_f = 330 * exp((1.5) * logT - (2554.7303689574) * invT); + const amrex::Real qf = k_f * (sc[6] * sc[28]); + const amrex::Real qr = + k_f * exp(-(g_RT[6] - g_RT[8] - g_RT[26] + g_RT[28])) * (sc[8] * sc[26]); + const amrex::Real qdot = qf - qr; + wdot[6] -= qdot; + wdot[8] += qdot; + wdot[26] += qdot; + wdot[28] -= qdot; + } + + { + // reaction 34: NH2 + OH <=> H2O + NH + const amrex::Real k_f = + 9.6 * exp((1.97) * logT - (337.155166089162) * invT); + const amrex::Real qf = k_f * (sc[8] * sc[28]); + const amrex::Real qr = + k_f * exp(-(-g_RT[7] + g_RT[8] - g_RT[26] + g_RT[28])) * (sc[7] * sc[26]); + const amrex::Real qdot = qf - qr; + wdot[7] += qdot; + wdot[8] -= qdot; + wdot[26] += qdot; + wdot[28] -= qdot; + } + + { + // reaction 35: NH2 + O2 <=> HNO + OH + const amrex::Real k_f = + 2.9e-08 * exp((3.764) * logT - (9150.99506765883) * invT); + const amrex::Real qf = k_f * (sc[5] * sc[28]); + const amrex::Real qr = + k_f * exp(-(g_RT[5] - g_RT[8] - g_RT[14] + g_RT[28])) * (sc[8] * sc[14]); + const amrex::Real qdot = qf - qr; + wdot[5] -= qdot; + wdot[8] += qdot; + wdot[14] += qdot; + wdot[28] -= qdot; + } + + { + // reaction 36: NH2 + O2 <=> H2NO + O + const amrex::Real k_f = + 260000 * exp((0.487) * logT - (14618.4441416271) * invT); + const amrex::Real qf = k_f * (sc[5] * sc[28]); + const amrex::Real qr = + k_f * exp(-(g_RT[5] - g_RT[6] + g_RT[28] - g_RT[29])) * (sc[6] * sc[29]); + const amrex::Real qdot = qf - qr; + wdot[5] -= qdot; + wdot[6] += qdot; + wdot[28] -= qdot; + wdot[29] += qdot; + } + + { + // reaction 37: HO2 + NH2 <=> H2NO + OH + const amrex::Real k_f = 15660000; + const amrex::Real qf = k_f * (sc[10] * sc[28]); + const amrex::Real qr = k_f * + exp(-(-g_RT[8] + g_RT[10] + g_RT[28] - g_RT[29])) * + (sc[8] * sc[29]); + const amrex::Real qdot = qf - qr; + wdot[8] += qdot; + wdot[10] -= qdot; + wdot[28] -= qdot; + wdot[29] += qdot; + } + + { + // reaction 38: NH + NH2 <=> H + N2H2 + const amrex::Real k_f = 1500000000 * exp((-0.5) * logT); + const amrex::Real qf = k_f * (sc[26] * sc[28]); + const amrex::Real qr = k_f * + exp(-(-g_RT[4] - g_RT[18] + g_RT[26] + g_RT[28])) * + (sc[4] * sc[18]); + const amrex::Real qdot = qf - qr; + wdot[4] += qdot; + wdot[18] += qdot; + wdot[26] -= qdot; + wdot[28] -= qdot; + } + + { + // reaction 39: NH + NH2 <=> N + NH3 + const amrex::Real k_f = + 0.0096 * exp((2.46) * logT - (53.844183241105) * invT); + const amrex::Real qf = k_f * (sc[26] * sc[28]); + const amrex::Real qr = k_f * + exp(-(-g_RT[22] - g_RT[24] + g_RT[26] + g_RT[28])) * + (sc[22] * sc[24]); + const amrex::Real qdot = qf - qr; + wdot[22] += qdot; + wdot[24] += qdot; + wdot[26] -= qdot; + wdot[28] -= qdot; + } + + { + // reaction 40: 2 NH <=> N + NH2 + const amrex::Real k_f = + 5.7e-07 * exp((3.88) * logT - (172.100099705214) * invT); + const amrex::Real qf = k_f * ((sc[26] * sc[26])); + const amrex::Real qr = k_f * + exp(-(-g_RT[24] + 2.000000 * g_RT[26] - g_RT[28])) * + (sc[24] * sc[28]); + const amrex::Real qdot = qf - qr; + wdot[24] += qdot; + wdot[26] -= 2.000000 * qdot; + wdot[28] += qdot; + } + + { + // reaction 41: 2 NH => H2 + N2 + const amrex::Real k_f = + 6260000 * exp((-0.036) * logT - (-80.9675615279794) * invT); + const amrex::Real qf = k_f * ((sc[26] * sc[26])); + const amrex::Real qr = 0.0; + const amrex::Real qdot = qf - qr; + wdot[1] += qdot; + wdot[3] += qdot; + wdot[26] -= 2.000000 * qdot; + } + + { + // reaction 42: 2 NH => 2 H + N2 + const amrex::Real k_f = + 56340000 * exp((-0.036) * logT - (-80.9675615279794) * invT); + const amrex::Real qf = k_f * ((sc[26] * sc[26])); + const amrex::Real qr = 0.0; + const amrex::Real qdot = qf - qr; + wdot[1] += qdot; + wdot[4] += 2.000000 * qdot; + wdot[26] -= 2.000000 * qdot; + } + + { + // reaction 43: 2 NH2 <=> NH + NH3 + const amrex::Real k_f = + 5.64e-06 * exp((3.53) * logT - (276.769166192596) * invT); + const amrex::Real qf = k_f * ((sc[28] * sc[28])); + const amrex::Real qr = k_f * + exp(-(-g_RT[22] - g_RT[26] + 2.000000 * g_RT[28])) * + (sc[22] * sc[26]); + const amrex::Real qdot = qf - qr; + wdot[22] += qdot; + wdot[26] += qdot; + wdot[28] -= 2.000000 * qdot; + } + + { + // reaction 44: 2 NH2 <=> N2H4 + const amrex::Real k_f = + 5.42248766831622e+42 * + exp((-11.2978848534069) * logT - (5973.94105162226) * invT); + const amrex::Real qf = k_f * ((sc[28] * sc[28])); + const amrex::Real qr = + k_f * exp(-(-g_RT[23] + 2.000000 * g_RT[28])) * (refC) * (sc[23]); + const amrex::Real qdot = qf - qr; + wdot[23] += qdot; + wdot[28] -= 2.000000 * qdot; + } + + { + // reaction 45: 2 NH2 <=> H + N2H3 + const amrex::Real k_f = + 1198178.67715513 * + exp((-0.0298856677517254) * logT - (5074.23692769742) * invT); + const amrex::Real qf = k_f * ((sc[28] * sc[28])); + const amrex::Real qr = k_f * + exp(-(-g_RT[4] + 2.000000 * g_RT[28] - g_RT[30])) * + (sc[4] * sc[30]); + const amrex::Real qdot = qf - qr; + wdot[4] += qdot; + wdot[28] -= 2.000000 * qdot; + wdot[30] += qdot; + } + + { + // reaction 46: 2 NH2 <=> H2 + H2NN + const amrex::Real k_f = + 1.18900999517547e+15 * + exp((-3.07902817588967) * logT - (1691.28964263562) * invT); + const amrex::Real qf = k_f * ((sc[28] * sc[28])); + const amrex::Real qr = k_f * + exp(-(-g_RT[3] - g_RT[19] + 2.000000 * g_RT[28])) * + (sc[3] * sc[19]); + const amrex::Real qdot = qf - qr; + wdot[3] += qdot; + wdot[19] += qdot; + wdot[28] -= 2.000000 * qdot; + } + + { + // reaction 48: H + NH2OH <=> H2 + HNOH + const amrex::Real k_f = 480 * exp((1.5) * logT - (3144.60094461369) * invT); + const amrex::Real qf = k_f * (sc[4] * sc[20]); + const amrex::Real qr = + k_f * exp(-(-g_RT[3] + g_RT[4] + g_RT[20] - g_RT[21])) * (sc[3] * sc[21]); + const amrex::Real qdot = qf - qr; + wdot[3] += qdot; + wdot[4] -= qdot; + wdot[20] -= qdot; + wdot[21] += qdot; + } + + { + // reaction 49: H + NH2OH <=> H2 + H2NO + const amrex::Real k_f = 240 * exp((1.5) * logT - (2549.79884563251) * invT); + const amrex::Real qf = k_f * (sc[4] * sc[20]); + const amrex::Real qr = + k_f * exp(-(-g_RT[3] + g_RT[4] + g_RT[20] - g_RT[29])) * (sc[3] * sc[29]); + const amrex::Real qdot = qf - qr; + wdot[3] += qdot; + wdot[4] -= qdot; + wdot[20] -= qdot; + wdot[29] += qdot; + } + + { + // reaction 50: NH2OH + O <=> HNOH + OH + const amrex::Real k_f = 330 * exp((1.5) * logT - (1944.93241333524) * invT); + const amrex::Real qf = k_f * (sc[6] * sc[20]); + const amrex::Real qr = + k_f * exp(-(g_RT[6] - g_RT[8] + g_RT[20] - g_RT[21])) * (sc[8] * sc[21]); + const amrex::Real qdot = qf - qr; + wdot[6] -= qdot; + wdot[8] += qdot; + wdot[20] -= qdot; + wdot[21] += qdot; + } + + { + // reaction 51: NH2OH + O <=> H2NO + OH + const amrex::Real k_f = 170 * exp((1.5) * logT - (1514.68216407221) * invT); + const amrex::Real qf = k_f * (sc[6] * sc[20]); + const amrex::Real qr = + k_f * exp(-(g_RT[6] - g_RT[8] + g_RT[20] - g_RT[29])) * (sc[8] * sc[29]); + const amrex::Real qdot = qf - qr; + wdot[6] -= qdot; + wdot[8] += qdot; + wdot[20] -= qdot; + wdot[29] += qdot; + } + + { + // reaction 52: NH2OH + OH <=> H2O + HNOH + const amrex::Real k_f = + 0.015 * exp((2.61) * logT - (-1779.87734695129) * invT); + const amrex::Real qf = k_f * (sc[8] * sc[20]); + const amrex::Real qr = + k_f * exp(-(-g_RT[7] + g_RT[8] + g_RT[20] - g_RT[21])) * (sc[7] * sc[21]); + const amrex::Real qdot = qf - qr; + wdot[7] += qdot; + wdot[8] -= qdot; + wdot[20] -= qdot; + wdot[21] += qdot; + } + + { + // reaction 53: NH2OH + OH <=> H2NO + H2O + const amrex::Real k_f = + 0.15 * exp((2.28) * logT - (-652.168798882917) * invT); + const amrex::Real qf = k_f * (sc[8] * sc[20]); + const amrex::Real qr = + k_f * exp(-(-g_RT[7] + g_RT[8] + g_RT[20] - g_RT[29])) * (sc[7] * sc[29]); + const amrex::Real qdot = qf - qr; + wdot[7] += qdot; + wdot[8] -= qdot; + wdot[20] -= qdot; + wdot[29] += qdot; + } + + { + // reaction 54: NH2 + NH2OH <=> HNOH + NH3 + const amrex::Real k_f = + 1.1e-07 * exp((4) * logT - (-48.8120165830578) * invT); + const amrex::Real qf = k_f * (sc[20] * sc[28]); + const amrex::Real qr = k_f * + exp(-(g_RT[20] - g_RT[21] - g_RT[22] + g_RT[28])) * + (sc[21] * sc[22]); + const amrex::Real qdot = qf - qr; + wdot[20] -= qdot; + wdot[21] += qdot; + wdot[22] += qdot; + wdot[28] -= qdot; + } + + { + // reaction 55: NH2 + NH2OH <=> H2NO + NH3 + const amrex::Real k_f = + 9.5e-06 * exp((3.42) * logT - (-509.758482460181) * invT); + const amrex::Real qf = k_f * (sc[20] * sc[28]); + const amrex::Real qr = k_f * + exp(-(g_RT[20] - g_RT[22] + g_RT[28] - g_RT[29])) * + (sc[22] * sc[29]); + const amrex::Real qdot = qf - qr; + wdot[20] -= qdot; + wdot[22] += qdot; + wdot[28] -= qdot; + wdot[29] += qdot; + } + + { + // reaction 56: NH + NH2OH <=> HNOH + NH2 + const amrex::Real k_f = + 2.9e-09 * exp((4.4) * logT - (787.030865318582) * invT); + const amrex::Real qf = k_f * (sc[20] * sc[26]); + const amrex::Real qr = k_f * + exp(-(g_RT[20] - g_RT[21] + g_RT[26] - g_RT[28])) * + (sc[21] * sc[28]); + const amrex::Real qdot = qf - qr; + wdot[20] -= qdot; + wdot[21] += qdot; + wdot[26] -= qdot; + wdot[28] += qdot; + } + + { + // reaction 57: NH + NH2OH <=> H2NO + NH2 + const amrex::Real k_f = + 1.5e-09 * exp((4.6) * logT - (1219.79719791064) * invT); + const amrex::Real qf = k_f * (sc[20] * sc[26]); + const amrex::Real qr = k_f * + exp(-(g_RT[20] + g_RT[26] - g_RT[28] - g_RT[29])) * + (sc[28] * sc[29]); + const amrex::Real qdot = qf - qr; + wdot[20] -= qdot; + wdot[26] -= qdot; + wdot[28] += qdot; + wdot[29] += qdot; + } + + { + // reaction 58: HO2 + NH2OH <=> H2O2 + HNOH + const amrex::Real k_f = + 0.029 * exp((2.69) * logT - (4809.24167509571) * invT); + const amrex::Real qf = k_f * (sc[10] * sc[20]); + const amrex::Real qr = k_f * + exp(-(-g_RT[9] + g_RT[10] + g_RT[20] - g_RT[21])) * + (sc[9] * sc[21]); + const amrex::Real qdot = qf - qr; + wdot[9] += qdot; + wdot[10] -= qdot; + wdot[20] -= qdot; + wdot[21] += qdot; + } + + { + // reaction 59: HO2 + NH2OH <=> H2NO + H2O2 + const amrex::Real k_f = + 0.014 * exp((2.69) * logT - (3229.64456113469) * invT); + const amrex::Real qf = k_f * (sc[10] * sc[20]); + const amrex::Real qr = k_f * + exp(-(-g_RT[9] + g_RT[10] + g_RT[20] - g_RT[29])) * + (sc[9] * sc[29]); + const amrex::Real qdot = qf - qr; + wdot[9] += qdot; + wdot[10] -= qdot; + wdot[20] -= qdot; + wdot[29] += qdot; + } + + { + // reaction 61: HNOH + O2 <=> HNO + HO2 + const amrex::Real k_f = 3000000 * exp(-(12580.416645118) * invT); + const amrex::Real qf = k_f * (sc[5] * sc[21]); + const amrex::Real qr = k_f * + exp(-(g_RT[5] - g_RT[10] - g_RT[14] + g_RT[21])) * + (sc[10] * sc[14]); + const amrex::Real qdot = qf - qr; + wdot[5] -= qdot; + wdot[10] += qdot; + wdot[14] += qdot; + wdot[21] -= qdot; + } + + { + // reaction 62: H + HNOH <=> NH2 + OH + const amrex::Real k_f = 40000000; + const amrex::Real qf = k_f * (sc[4] * sc[21]); + const amrex::Real qr = + k_f * exp(-(g_RT[4] - g_RT[8] + g_RT[21] - g_RT[28])) * (sc[8] * sc[28]); + const amrex::Real qdot = qf - qr; + wdot[4] -= qdot; + wdot[8] += qdot; + wdot[21] -= qdot; + wdot[28] += qdot; + } + + { + // reaction 63: H + HNOH <=> H2 + HNO + const amrex::Real k_f = 480 * exp((1.5) * logT - (190.215899674184) * invT); + const amrex::Real qf = k_f * (sc[4] * sc[21]); + const amrex::Real qr = + k_f * exp(-(-g_RT[3] + g_RT[4] - g_RT[14] + g_RT[21])) * (sc[3] * sc[14]); + const amrex::Real qdot = qf - qr; + wdot[3] += qdot; + wdot[4] -= qdot; + wdot[14] += qdot; + wdot[21] -= qdot; + } + + { + // reaction 64: HNOH + O <=> HNO + OH + const amrex::Real k_f = 70000000; + const amrex::Real qf = k_f * (sc[6] * sc[21]); + const amrex::Real qr = + k_f * exp(-(g_RT[6] - g_RT[8] - g_RT[14] + g_RT[21])) * (sc[8] * sc[14]); + const amrex::Real qdot = qf - qr; + wdot[6] -= qdot; + wdot[8] += qdot; + wdot[14] += qdot; + wdot[21] -= qdot; + } + + { + // reaction 65: HNOH + O <=> HNO + OH + const amrex::Real k_f = 330 * exp((1.5) * logT - (-180.15156635809) * invT); + const amrex::Real qf = k_f * (sc[6] * sc[21]); + const amrex::Real qr = + k_f * exp(-(g_RT[6] - g_RT[8] - g_RT[14] + g_RT[21])) * (sc[8] * sc[14]); + const amrex::Real qdot = qf - qr; + wdot[6] -= qdot; + wdot[8] += qdot; + wdot[14] += qdot; + wdot[21] -= qdot; + } + + { + // reaction 66: HNOH + OH <=> H2O + HNO + const amrex::Real k_f = 2.4 * exp((2) * logT - (-599.834265639226) * invT); + const amrex::Real qf = k_f * (sc[8] * sc[21]); + const amrex::Real qr = + k_f * exp(-(-g_RT[7] + g_RT[8] - g_RT[14] + g_RT[21])) * (sc[7] * sc[14]); + const amrex::Real qdot = qf - qr; + wdot[7] += qdot; + wdot[8] -= qdot; + wdot[14] += qdot; + wdot[21] -= qdot; + } + + { + // reaction 67: HNOH + HO2 <=> H2O2 + HNO + const amrex::Real k_f = + 0.029 * exp((2.69) * logT - (-805.146665287552) * invT); + const amrex::Real qf = k_f * (sc[10] * sc[21]); + const amrex::Real qr = k_f * + exp(-(-g_RT[9] + g_RT[10] - g_RT[14] + g_RT[21])) * + (sc[9] * sc[14]); + const amrex::Real qdot = qf - qr; + wdot[9] += qdot; + wdot[10] -= qdot; + wdot[14] += qdot; + wdot[21] -= qdot; + } + + { + // reaction 68: HNOH + HO2 <=> NH2OH + O2 + const amrex::Real k_f = + 0.029 * exp((2.69) * logT - (-805.146665287552) * invT); + const amrex::Real qf = k_f * (sc[10] * sc[21]); + const amrex::Real qr = k_f * + exp(-(-g_RT[5] + g_RT[10] - g_RT[20] + g_RT[21])) * + (sc[5] * sc[20]); + const amrex::Real qdot = qf - qr; + wdot[5] += qdot; + wdot[10] -= qdot; + wdot[20] += qdot; + wdot[21] -= qdot; + } + + { + // reaction 69: HNOH + NH2 <=> HNO + NH3 + const amrex::Real k_f = + 1.8 * exp((1.94) * logT - (-579.705599007037) * invT); + const amrex::Real qf = k_f * (sc[21] * sc[28]); + const amrex::Real qr = k_f * + exp(-(-g_RT[14] + g_RT[21] - g_RT[22] + g_RT[28])) * + (sc[14] * sc[22]); + const amrex::Real qdot = qf - qr; + wdot[14] += qdot; + wdot[21] -= qdot; + wdot[22] += qdot; + wdot[28] -= qdot; + } + + { + // reaction 70: HNOH + NH2 <=> N2H3 + OH + const amrex::Real k_f = + 6.7 * exp((1.82) * logT - (359.950881050116) * invT); + const amrex::Real qf = k_f * (sc[21] * sc[28]); + const amrex::Real qr = k_f * + exp(-(-g_RT[8] + g_RT[21] + g_RT[28] - g_RT[30])) * + (sc[8] * sc[30]); + const amrex::Real qdot = qf - qr; + wdot[8] += qdot; + wdot[21] -= qdot; + wdot[28] -= qdot; + wdot[30] += qdot; + } + + { + // reaction 71: HNOH + NH2 <=> H2NN + H2O + const amrex::Real k_f = + 46000000000000 * exp((-1.94) * logT - (969.899801672017) * invT); + const amrex::Real qf = k_f * (sc[21] * sc[28]); + const amrex::Real qr = k_f * + exp(-(-g_RT[7] - g_RT[19] + g_RT[21] + g_RT[28])) * + (sc[7] * sc[19]); + const amrex::Real qdot = qf - qr; + wdot[7] += qdot; + wdot[19] += qdot; + wdot[21] -= qdot; + wdot[28] -= qdot; + } + + { + // reaction 72: HNOH + NO2 <=> HNO + HONO + const amrex::Real k_f = 600000 * exp(-(1006.43333160944) * invT); + const amrex::Real qf = k_f * (sc[13] * sc[21]); + const amrex::Real qr = k_f * + exp(-(g_RT[13] - g_RT[14] - g_RT[16] + g_RT[21])) * + (sc[14] * sc[16]); + const amrex::Real qdot = qf - qr; + wdot[13] -= qdot; + wdot[14] += qdot; + wdot[16] += qdot; + wdot[21] -= qdot; + } + + { + // reaction 73: NH2 + NO2 <=> H2NO + NO + const amrex::Real k_f = + 860000 * exp((0.11) * logT - (-596.814965644398) * invT); + const amrex::Real qf = k_f * (sc[13] * sc[28]); + const amrex::Real qr = k_f * + exp(-(-g_RT[11] + g_RT[13] + g_RT[28] - g_RT[29])) * + (sc[11] * sc[29]); + const amrex::Real qdot = qf - qr; + wdot[11] += qdot; + wdot[13] -= qdot; + wdot[28] -= qdot; + wdot[29] += qdot; + } + + { + // reaction 74: NH2 + NO2 <=> H2O + N2O + const amrex::Real k_f = + 220000 * exp((0.11) * logT - (-596.814965644398) * invT); + const amrex::Real qf = k_f * (sc[13] * sc[28]); + const amrex::Real qr = k_f * + exp(-(-g_RT[7] - g_RT[12] + g_RT[13] + g_RT[28])) * + (sc[7] * sc[12]); + const amrex::Real qdot = qf - qr; + wdot[7] += qdot; + wdot[12] += qdot; + wdot[13] -= qdot; + wdot[28] -= qdot; + } + + { + // reaction 75: NH2 + NO <=> H2O + N2 + const amrex::Real k_f = + 26000000000000 * exp((-2.369) * logT - (437.798499250106) * invT); + const amrex::Real qf = k_f * (sc[11] * sc[28]); + const amrex::Real qr = + k_f * exp(-(-g_RT[1] - g_RT[7] + g_RT[11] + g_RT[28])) * (sc[1] * sc[7]); + const amrex::Real qdot = qf - qr; + wdot[1] += qdot; + wdot[7] += qdot; + wdot[11] -= qdot; + wdot[28] -= qdot; + } + + { + // reaction 76: NH2 + NO <=> NNH + OH + const amrex::Real k_f = + 43000 * exp((0.294) * logT - (-435.785632586887) * invT); + const amrex::Real qf = k_f * (sc[11] * sc[28]); + const amrex::Real qr = k_f * + exp(-(-g_RT[8] + g_RT[11] - g_RT[27] + g_RT[28])) * + (sc[8] * sc[27]); + const amrex::Real qdot = qf - qr; + wdot[8] += qdot; + wdot[11] -= qdot; + wdot[27] += qdot; + wdot[28] -= qdot; + } + + { + // reaction 77: H + NH <=> H2 + N + const amrex::Real k_f = 30100000; + const amrex::Real qf = k_f * (sc[4] * sc[26]); + const amrex::Real qr = + k_f * exp(-(-g_RT[3] + g_RT[4] - g_RT[24] + g_RT[26])) * (sc[3] * sc[24]); + const amrex::Real qdot = qf - qr; + wdot[3] += qdot; + wdot[4] -= qdot; + wdot[24] += qdot; + wdot[26] -= qdot; + } + + { + // reaction 78: NH + O <=> H + NO + const amrex::Real k_f = 30000000; + const amrex::Real qf = k_f * (sc[6] * sc[26]); + const amrex::Real qr = + k_f * exp(-(-g_RT[4] + g_RT[6] - g_RT[11] + g_RT[26])) * (sc[4] * sc[11]); + const amrex::Real qdot = qf - qr; + wdot[4] += qdot; + wdot[6] -= qdot; + wdot[11] += qdot; + wdot[26] -= qdot; + } + + { + // reaction 79: NH + OH <=> H + HNO + const amrex::Real k_f = 20000000; + const amrex::Real qf = k_f * (sc[8] * sc[26]); + const amrex::Real qr = + k_f * exp(-(-g_RT[4] + g_RT[8] - g_RT[14] + g_RT[26])) * (sc[4] * sc[14]); + const amrex::Real qdot = qf - qr; + wdot[4] += qdot; + wdot[8] -= qdot; + wdot[14] += qdot; + wdot[26] -= qdot; + } + + { + // reaction 80: NH + OH <=> H2O + N + const amrex::Real k_f = 2000 * exp((1.2) * logT); + const amrex::Real qf = k_f * (sc[8] * sc[26]); + const amrex::Real qr = + k_f * exp(-(-g_RT[7] + g_RT[8] - g_RT[24] + g_RT[26])) * (sc[7] * sc[24]); + const amrex::Real qdot = qf - qr; + wdot[7] += qdot; + wdot[8] -= qdot; + wdot[24] += qdot; + wdot[26] -= qdot; + } + + { + // reaction 81: NH + O2 <=> HNO + O + const amrex::Real k_f = + 405000 * exp((0.09) * logT - (5369.32182413636) * invT); + const amrex::Real qf = k_f * (sc[5] * sc[26]); + const amrex::Real qr = + k_f * exp(-(g_RT[5] - g_RT[6] - g_RT[14] + g_RT[26])) * (sc[6] * sc[14]); + const amrex::Real qdot = qf - qr; + wdot[5] -= qdot; + wdot[6] += qdot; + wdot[14] += qdot; + wdot[26] -= qdot; + } + + { + // reaction 82: NH + O2 <=> NO + OH + const amrex::Real k_f = + 2010000000 * exp((-1.38) * logT - (2853.23849511276) * invT); + const amrex::Real qf = k_f * (sc[5] * sc[26]); + const amrex::Real qr = + k_f * exp(-(g_RT[5] - g_RT[8] - g_RT[11] + g_RT[26])) * (sc[8] * sc[11]); + const amrex::Real qdot = qf - qr; + wdot[5] -= qdot; + wdot[8] += qdot; + wdot[11] += qdot; + wdot[26] -= qdot; + } + + { + // reaction 83: N + NH <=> H + N2 + const amrex::Real k_f = + 641000 * exp((0.51) * logT - (10.0643333160944) * invT); + const amrex::Real qf = k_f * (sc[24] * sc[26]); + const amrex::Real qr = + k_f * exp(-(-g_RT[1] - g_RT[4] + g_RT[24] + g_RT[26])) * (sc[1] * sc[4]); + const amrex::Real qdot = qf - qr; + wdot[1] += qdot; + wdot[4] += qdot; + wdot[24] -= qdot; + wdot[26] -= qdot; + } + + { + // reaction 84: NH + NO <=> H + N2O + const amrex::Real k_f = + 5328000 * exp((0.026) * logT - (-1456.25870917228) * invT); + const amrex::Real qf = k_f * (sc[11] * sc[26]); + const amrex::Real qr = k_f * + exp(-(-g_RT[4] + g_RT[11] - g_RT[12] + g_RT[26])) * + (sc[4] * sc[12]); + const amrex::Real qdot = qf - qr; + wdot[4] += qdot; + wdot[11] -= qdot; + wdot[12] += qdot; + wdot[26] -= qdot; + } + + { + // reaction 85: NH + NO <=> N2 + OH + const amrex::Real k_f = + 36350 * exp((0.361) * logT - (-1431.29916254836) * invT); + const amrex::Real qf = k_f * (sc[11] * sc[26]); + const amrex::Real qr = + k_f * exp(-(-g_RT[1] - g_RT[8] + g_RT[11] + g_RT[26])) * (sc[1] * sc[8]); + const amrex::Real qdot = qf - qr; + wdot[1] += qdot; + wdot[8] += qdot; + wdot[11] -= qdot; + wdot[26] -= qdot; + } + + { + // reaction 86: NH + NO2 <=> N2O + OH + const amrex::Real k_f = 4100000; + const amrex::Real qf = k_f * (sc[13] * sc[26]); + const amrex::Real qr = k_f * + exp(-(-g_RT[8] - g_RT[12] + g_RT[13] + g_RT[26])) * + (sc[8] * sc[12]); + const amrex::Real qdot = qf - qr; + wdot[8] += qdot; + wdot[12] += qdot; + wdot[13] -= qdot; + wdot[26] -= qdot; + } + + { + // reaction 87: NH + NO2 <=> HNO + NO + const amrex::Real k_f = 5900000; + const amrex::Real qf = k_f * (sc[13] * sc[26]); + const amrex::Real qr = k_f * + exp(-(-g_RT[11] + g_RT[13] - g_RT[14] + g_RT[26])) * + (sc[11] * sc[14]); + const amrex::Real qdot = qf - qr; + wdot[11] += qdot; + wdot[13] -= qdot; + wdot[14] += qdot; + wdot[26] -= qdot; + } + + { + // reaction 88: N + OH <=> H + NO + const amrex::Real k_f = 28300000; + const amrex::Real qf = k_f * (sc[8] * sc[24]); + const amrex::Real qr = + k_f * exp(-(-g_RT[4] + g_RT[8] - g_RT[11] + g_RT[24])) * (sc[4] * sc[11]); + const amrex::Real qdot = qf - qr; + wdot[4] += qdot; + wdot[8] -= qdot; + wdot[11] += qdot; + wdot[24] -= qdot; + } + + { + // reaction 89: N + O2 <=> NO + O + const amrex::Real k_f = 9027 * exp((1) * logT - (3270.90832773068) * invT); + const amrex::Real qf = k_f * (sc[5] * sc[24]); + const amrex::Real qr = + k_f * exp(-(g_RT[5] - g_RT[6] - g_RT[11] + g_RT[24])) * (sc[6] * sc[11]); + const amrex::Real qdot = qf - qr; + wdot[5] -= qdot; + wdot[6] += qdot; + wdot[11] += qdot; + wdot[24] -= qdot; + } + + { + // reaction 90: N + NO <=> N2 + O + const amrex::Real k_f = 42800000 * exp(-(790.05016531341) * invT); + const amrex::Real qf = k_f * (sc[11] * sc[24]); + const amrex::Real qr = + k_f * exp(-(-g_RT[1] - g_RT[6] + g_RT[11] + g_RT[24])) * (sc[1] * sc[6]); + const amrex::Real qdot = qf - qr; + wdot[1] += qdot; + wdot[6] += qdot; + wdot[11] -= qdot; + wdot[24] -= qdot; + } + + { + // reaction 91: N2H4 <=> H2 + H2NN + const amrex::Real k_f = + 5.65145496101273e+39 * + exp((-8.3585749186206) * logT - (34882.1236135086) * invT); + const amrex::Real qf = k_f * (sc[23]); + const amrex::Real qr = k_f * exp(-(-g_RT[3] - g_RT[19] + g_RT[23])) * + (refCinv) * (sc[3] * sc[19]); + const amrex::Real qdot = qf - qr; + wdot[3] += qdot; + wdot[19] += qdot; + wdot[23] -= qdot; + } + + { + // reaction 92: H + N2H4 <=> H2 + N2H3 + const amrex::Real k_f = 960 * exp((1.5) * logT - (2434.71319416298) * invT); + const amrex::Real qf = k_f * (sc[4] * sc[23]); + const amrex::Real qr = + k_f * exp(-(-g_RT[3] + g_RT[4] + g_RT[23] - g_RT[30])) * (sc[3] * sc[30]); + const amrex::Real qdot = qf - qr; + wdot[3] += qdot; + wdot[4] -= qdot; + wdot[23] -= qdot; + wdot[30] += qdot; + } + + { + // reaction 93: N2H4 + O <=> N2H3 + OH + const amrex::Real k_f = 670 * exp((1.5) * logT - (1434.821679209) * invT); + const amrex::Real qf = k_f * (sc[6] * sc[23]); + const amrex::Real qr = + k_f * exp(-(g_RT[6] - g_RT[8] + g_RT[23] - g_RT[30])) * (sc[8] * sc[30]); + const amrex::Real qdot = qf - qr; + wdot[6] -= qdot; + wdot[8] += qdot; + wdot[23] -= qdot; + wdot[30] += qdot; + } + + { + // reaction 94: N2H4 + O <=> H2O + N2H2 + const amrex::Real k_f = 84900000 * exp(-(603.859998965664) * invT); + const amrex::Real qf = k_f * (sc[6] * sc[23]); + const amrex::Real qr = + k_f * exp(-(g_RT[6] - g_RT[7] - g_RT[18] + g_RT[23])) * (sc[7] * sc[18]); + const amrex::Real qdot = qf - qr; + wdot[6] -= qdot; + wdot[7] += qdot; + wdot[18] += qdot; + wdot[23] -= qdot; + } + + { + // reaction 95: N2H4 + OH <=> H2O + N2H3 + const amrex::Real k_f = 13000000 * exp(-(-160.022899725901) * invT); + const amrex::Real qf = k_f * (sc[8] * sc[23]); + const amrex::Real qr = + k_f * exp(-(-g_RT[7] + g_RT[8] + g_RT[23] - g_RT[30])) * (sc[7] * sc[30]); + const amrex::Real qdot = qf - qr; + wdot[7] += qdot; + wdot[8] -= qdot; + wdot[23] -= qdot; + wdot[30] += qdot; + } + + { + // reaction 96: N2H4 + NH2 <=> N2H3 + NH3 + const amrex::Real k_f = + 3.7 * exp((1.94) * logT - (820.243165261693) * invT); + const amrex::Real qf = k_f * (sc[23] * sc[28]); + const amrex::Real qr = k_f * + exp(-(-g_RT[22] + g_RT[23] + g_RT[28] - g_RT[30])) * + (sc[22] * sc[30]); + const amrex::Real qdot = qf - qr; + wdot[22] += qdot; + wdot[23] -= qdot; + wdot[28] -= qdot; + wdot[30] += qdot; + } + + { + // reaction 97: N2H4 + NO <=> HNO + N2H3 + const amrex::Real k_f = + 6e-05 * exp((3.16) * logT - (15521.7180567466) * invT); + const amrex::Real qf = k_f * (sc[11] * sc[23]); + const amrex::Real qr = k_f * + exp(-(g_RT[11] - g_RT[14] + g_RT[23] - g_RT[30])) * + (sc[14] * sc[30]); + const amrex::Real qdot = qf - qr; + wdot[11] -= qdot; + wdot[14] += qdot; + wdot[23] -= qdot; + wdot[30] += qdot; + } + + { + // reaction 98: N2H4 + NO2 <=> HONO + N2H3 + const amrex::Real k_f = + 8.2e-05 * exp((3.13) * logT - (4458.49965902982) * invT); + const amrex::Real qf = k_f * (sc[13] * sc[23]); + const amrex::Real qr = k_f * + exp(-(g_RT[13] - g_RT[16] + g_RT[23] - g_RT[30])) * + (sc[16] * sc[30]); + const amrex::Real qdot = qf - qr; + wdot[13] -= qdot; + wdot[16] += qdot; + wdot[23] -= qdot; + wdot[30] += qdot; + } + + { + // reaction 99: N2H4 + NO2 <=> HNO2 + N2H3 + const amrex::Real k_f = + 2.4e-08 * exp((4.14) * logT - (3998.5596264843) * invT); + const amrex::Real qf = k_f * (sc[13] * sc[23]); + const amrex::Real qr = k_f * + exp(-(g_RT[13] - g_RT[15] + g_RT[23] - g_RT[30])) * + (sc[15] * sc[30]); + const amrex::Real qdot = qf - qr; + wdot[13] -= qdot; + wdot[15] += qdot; + wdot[23] -= qdot; + wdot[30] += qdot; + } + + { + // reaction 100: N2H3 <=> H + N2H2 + const amrex::Real k_f = + 3.40662040294527e+47 * + exp((-10.3752552116966) * logT - (34695.7112236119) * invT); + const amrex::Real qf = k_f * (sc[30]); + const amrex::Real qr = k_f * exp(-(-g_RT[4] - g_RT[18] + g_RT[30])) * + (refCinv) * (sc[4] * sc[18]); + const amrex::Real qdot = qf - qr; + wdot[4] += qdot; + wdot[18] += qdot; + wdot[30] -= qdot; + } + + { + // reaction 101: H + N2H3 <=> H2 + N2H2 + const amrex::Real k_f = 240 * exp((1.5) * logT); + const amrex::Real qf = k_f * (sc[4] * sc[30]); + const amrex::Real qr = + k_f * exp(-(-g_RT[3] + g_RT[4] - g_RT[18] + g_RT[30])) * (sc[3] * sc[18]); + const amrex::Real qdot = qf - qr; + wdot[3] += qdot; + wdot[4] -= qdot; + wdot[18] += qdot; + wdot[30] -= qdot; + } + + { + // reaction 102: N2H3 + O <=> HNO + NH2 + const amrex::Real k_f = 30000000; + const amrex::Real qf = k_f * (sc[6] * sc[30]); + const amrex::Real qr = k_f * + exp(-(g_RT[6] - g_RT[14] - g_RT[28] + g_RT[30])) * + (sc[14] * sc[28]); + const amrex::Real qdot = qf - qr; + wdot[6] -= qdot; + wdot[14] += qdot; + wdot[28] += qdot; + wdot[30] -= qdot; + } + + { + // reaction 103: N2H3 + O <=> N2H2 + OH + const amrex::Real k_f = + 170 * exp((1.5) * logT - (-324.826357776947) * invT); + const amrex::Real qf = k_f * (sc[6] * sc[30]); + const amrex::Real qr = + k_f * exp(-(g_RT[6] - g_RT[8] - g_RT[18] + g_RT[30])) * (sc[8] * sc[18]); + const amrex::Real qdot = qf - qr; + wdot[6] -= qdot; + wdot[8] += qdot; + wdot[18] += qdot; + wdot[30] -= qdot; + } + + { + // reaction 104: N2H3 + OH <=> H2O + N2H2 + const amrex::Real k_f = 1.2 * exp((2) * logT - (-599.632978972904) * invT); + const amrex::Real qf = k_f * (sc[8] * sc[30]); + const amrex::Real qr = + k_f * exp(-(-g_RT[7] + g_RT[8] - g_RT[18] + g_RT[30])) * (sc[7] * sc[18]); + const amrex::Real qdot = qf - qr; + wdot[7] += qdot; + wdot[8] -= qdot; + wdot[18] += qdot; + wdot[30] -= qdot; + } + + { + // reaction 105: N2H3 + OH <=> H2NN + H2O + const amrex::Real k_f = 30000000; + const amrex::Real qf = k_f * (sc[8] * sc[30]); + const amrex::Real qr = + k_f * exp(-(-g_RT[7] + g_RT[8] - g_RT[19] + g_RT[30])) * (sc[7] * sc[19]); + const amrex::Real qdot = qf - qr; + wdot[7] += qdot; + wdot[8] -= qdot; + wdot[19] += qdot; + wdot[30] -= qdot; + } + + { + // reaction 106: N2H3 + NH2 <=> N2H2 + NH3 + const amrex::Real k_f = + 0.92 * exp((1.94) * logT - (-579.957207339939) * invT); + const amrex::Real qf = k_f * (sc[28] * sc[30]); + const amrex::Real qr = k_f * + exp(-(-g_RT[18] - g_RT[22] + g_RT[28] + g_RT[30])) * + (sc[18] * sc[22]); + const amrex::Real qdot = qf - qr; + wdot[18] += qdot; + wdot[22] += qdot; + wdot[28] -= qdot; + wdot[30] -= qdot; + } + + { + // reaction 107: N2H3 + NH2 <=> H2NN + NH3 + const amrex::Real k_f = 30000000; + const amrex::Real qf = k_f * (sc[28] * sc[30]); + const amrex::Real qr = k_f * + exp(-(-g_RT[19] - g_RT[22] + g_RT[28] + g_RT[30])) * + (sc[19] * sc[22]); + const amrex::Real qdot = qf - qr; + wdot[19] += qdot; + wdot[22] += qdot; + wdot[28] -= qdot; + wdot[30] -= qdot; + } + + { + // reaction 108: HO2 + N2H3 <=> H2O2 + N2H2 + const amrex::Real k_f = + 0.014 * exp((2.69) * logT - (-804.895056954649) * invT); + const amrex::Real qf = k_f * (sc[10] * sc[30]); + const amrex::Real qr = k_f * + exp(-(-g_RT[9] + g_RT[10] - g_RT[18] + g_RT[30])) * + (sc[9] * sc[18]); + const amrex::Real qdot = qf - qr; + wdot[9] += qdot; + wdot[10] -= qdot; + wdot[18] += qdot; + wdot[30] -= qdot; + } + + { + // reaction 109: HO2 + N2H3 <=> N2H4 + O2 + const amrex::Real k_f = + 0.92 * exp((1.94) * logT - (1069.88895316741) * invT); + const amrex::Real qf = k_f * (sc[10] * sc[30]); + const amrex::Real qr = k_f * + exp(-(-g_RT[5] + g_RT[10] - g_RT[23] + g_RT[30])) * + (sc[5] * sc[23]); + const amrex::Real qdot = qf - qr; + wdot[5] += qdot; + wdot[10] -= qdot; + wdot[23] += qdot; + wdot[30] -= qdot; + } + + { + // reaction 110: N2H2 <=> H + NNH + const amrex::Real k_f = + 1.71879413245943e+40 * + exp((-8.40622703580694) * logT - (36903.4250189979) * invT); + const amrex::Real qf = k_f * (sc[18]); + const amrex::Real qr = k_f * exp(-(-g_RT[4] + g_RT[18] - g_RT[27])) * + (refCinv) * (sc[4] * sc[27]); + const amrex::Real qdot = qf - qr; + wdot[4] += qdot; + wdot[18] -= qdot; + wdot[27] += qdot; + } + + { + // reaction 111: N2H2 <=> H + NNH + const amrex::Real k_f = + 2.49240230236554e+40 * + exp((-8.5266271986759) * logT - (36671.3233662919) * invT); + const amrex::Real qf = k_f * (sc[18]); + const amrex::Real qr = k_f * exp(-(-g_RT[4] + g_RT[18] - g_RT[27])) * + (refCinv) * (sc[4] * sc[27]); + const amrex::Real qdot = qf - qr; + wdot[4] += qdot; + wdot[18] -= qdot; + wdot[27] += qdot; + } + + { + // reaction 112: H + N2H2 <=> H2 + NNH + const amrex::Real k_f = + 4121 * exp((1.289) * logT - (-112.770854806838) * invT); + const amrex::Real qf = k_f * (sc[4] * sc[18]); + const amrex::Real qr = + k_f * exp(-(-g_RT[3] + g_RT[4] + g_RT[18] - g_RT[27])) * (sc[3] * sc[27]); + const amrex::Real qdot = qf - qr; + wdot[3] += qdot; + wdot[4] -= qdot; + wdot[18] -= qdot; + wdot[27] += qdot; + } + + { + // reaction 113: N2H2 + O <=> NNH + OH + const amrex::Real k_f = 330 * exp((1.5) * logT - (249.847074572043) * invT); + const amrex::Real qf = k_f * (sc[6] * sc[18]); + const amrex::Real qr = + k_f * exp(-(g_RT[6] - g_RT[8] + g_RT[18] - g_RT[27])) * (sc[8] * sc[27]); + const amrex::Real qdot = qf - qr; + wdot[6] -= qdot; + wdot[8] += qdot; + wdot[18] -= qdot; + wdot[27] += qdot; + } + + { + // reaction 114: N2H2 + OH <=> H2O + NNH + const amrex::Real k_f = + 5.923e-05 * exp((3.4) * logT - (-686.236567157896) * invT); + const amrex::Real qf = k_f * (sc[8] * sc[18]); + const amrex::Real qr = + k_f * exp(-(-g_RT[7] + g_RT[8] + g_RT[18] - g_RT[27])) * (sc[7] * sc[27]); + const amrex::Real qdot = qf - qr; + wdot[7] += qdot; + wdot[8] -= qdot; + wdot[18] -= qdot; + wdot[27] += qdot; + } + + { + // reaction 115: N2H2 + NO <=> N2O + NH2 + const amrex::Real k_f = 4000000 * exp(-(5996.32978972904) * invT); + const amrex::Real qf = k_f * (sc[11] * sc[18]); + const amrex::Real qr = k_f * + exp(-(g_RT[11] - g_RT[12] + g_RT[18] - g_RT[28])) * + (sc[12] * sc[28]); + const amrex::Real qdot = qf - qr; + wdot[11] -= qdot; + wdot[12] += qdot; + wdot[18] -= qdot; + wdot[28] += qdot; + } + + { + // reaction 116: N2H2 + NH <=> NH2 + NNH + const amrex::Real k_f = 2.4 * exp((2) * logT - (-599.632978972904) * invT); + const amrex::Real qf = k_f * (sc[18] * sc[26]); + const amrex::Real qr = k_f * + exp(-(g_RT[18] + g_RT[26] - g_RT[27] - g_RT[28])) * + (sc[27] * sc[28]); + const amrex::Real qdot = qf - qr; + wdot[18] -= qdot; + wdot[26] -= qdot; + wdot[27] += qdot; + wdot[28] += qdot; + } + + { + // reaction 117: N2H2 + NH2 <=> NH3 + NNH + const amrex::Real k_f = + 8.8e-08 * exp((4.05) * logT - (-810.178831945599) * invT); + const amrex::Real qf = k_f * (sc[18] * sc[28]); + const amrex::Real qr = k_f * + exp(-(g_RT[18] - g_RT[22] - g_RT[27] + g_RT[28])) * + (sc[22] * sc[27]); + const amrex::Real qdot = qf - qr; + wdot[18] -= qdot; + wdot[22] += qdot; + wdot[27] += qdot; + wdot[28] -= qdot; + } + + { + // reaction 118: N2H2 <=> H2NN + const amrex::Real k_f = + 1.93940668415635e+41 * + exp((-9.37788485340692) * logT - (34444.2013843765) * invT); + const amrex::Real qf = k_f * (sc[18]); + const amrex::Real qr = k_f * exp(-(g_RT[18] - g_RT[19])) * (sc[19]); + const amrex::Real qdot = qf - qr; + wdot[18] -= qdot; + wdot[19] += qdot; + } + + { + // reaction 119: H2NN <=> H + NNH + const amrex::Real k_f = + 9.20264764849862e+35 * + exp((-7.56668436480004) * logT - (27588.2318940823) * invT); + const amrex::Real qf = k_f * (sc[19]); + const amrex::Real qr = k_f * exp(-(-g_RT[4] + g_RT[19] - g_RT[27])) * + (refCinv) * (sc[4] * sc[27]); + const amrex::Real qdot = qf - qr; + wdot[4] += qdot; + wdot[19] -= qdot; + wdot[27] += qdot; + } + + { + // reaction 120: H2NN <=> H + NNH + const amrex::Real k_f = + 3.09039101188632e+31 * + exp((-6.22886074924128) * logT - (26322.6514882744) * invT); + const amrex::Real qf = k_f * (sc[19]); + const amrex::Real qr = k_f * exp(-(-g_RT[4] + g_RT[19] - g_RT[27])) * + (refCinv) * (sc[4] * sc[27]); + const amrex::Real qdot = qf - qr; + wdot[4] += qdot; + wdot[19] -= qdot; + wdot[27] += qdot; + } + + { + // reaction 121: H2NN + O2 <=> NH2 + NO2 + const amrex::Real k_f = 1500000 * exp(-(2999.67454486193) * invT); + const amrex::Real qf = k_f * (sc[5] * sc[19]); + const amrex::Real qr = k_f * + exp(-(g_RT[5] - g_RT[13] + g_RT[19] - g_RT[28])) * + (sc[13] * sc[28]); + const amrex::Real qdot = qf - qr; + wdot[5] -= qdot; + wdot[13] += qdot; + wdot[19] -= qdot; + wdot[28] += qdot; + } + + { + // reaction 122: H + H2NN <=> H + N2H2 + const amrex::Real k_f = + 18000 * exp((0.97) * logT - (2249.78106947974) * invT); + const amrex::Real qf = k_f * (sc[4] * sc[19]); + const amrex::Real qr = + k_f * exp(-(g_RT[4] - g_RT[4] - g_RT[18] + g_RT[19])) * (sc[4] * sc[18]); + const amrex::Real qdot = qf - qr; + wdot[4] -= qdot; + wdot[4] += qdot; + wdot[18] += qdot; + wdot[19] -= qdot; + } + + { + // reaction 123: H + H2NN <=> H2 + NNH + const amrex::Real k_f = 480 * exp((1.5) * logT - (-449.97634256258) * invT); + const amrex::Real qf = k_f * (sc[4] * sc[19]); + const amrex::Real qr = + k_f * exp(-(-g_RT[3] + g_RT[4] + g_RT[19] - g_RT[27])) * (sc[3] * sc[27]); + const amrex::Real qdot = qf - qr; + wdot[3] += qdot; + wdot[4] -= qdot; + wdot[19] -= qdot; + wdot[27] += qdot; + } + + { + // reaction 124: H2NN + O <=> NH2 + NO + const amrex::Real k_f = + 3200 * exp((1.03) * logT - (1359.84239600409) * invT); + const amrex::Real qf = k_f * (sc[6] * sc[19]); + const amrex::Real qr = k_f * + exp(-(g_RT[6] - g_RT[11] + g_RT[19] - g_RT[28])) * + (sc[11] * sc[28]); + const amrex::Real qdot = qf - qr; + wdot[6] -= qdot; + wdot[11] += qdot; + wdot[19] -= qdot; + wdot[28] += qdot; + } + + { + // reaction 125: H2NN + O <=> NNH + OH + const amrex::Real k_f = 330 * exp((1.5) * logT - (-449.97634256258) * invT); + const amrex::Real qf = k_f * (sc[6] * sc[19]); + const amrex::Real qr = + k_f * exp(-(g_RT[6] - g_RT[8] + g_RT[19] - g_RT[27])) * (sc[8] * sc[27]); + const amrex::Real qdot = qf - qr; + wdot[6] -= qdot; + wdot[8] += qdot; + wdot[19] -= qdot; + wdot[27] += qdot; + } + + { + // reaction 126: H2NN + OH <=> H2O + NNH + const amrex::Real k_f = 2.4 * exp((2) * logT - (-599.934908972387) * invT); + const amrex::Real qf = k_f * (sc[8] * sc[19]); + const amrex::Real qr = + k_f * exp(-(-g_RT[7] + g_RT[8] + g_RT[19] - g_RT[27])) * (sc[7] * sc[27]); + const amrex::Real qdot = qf - qr; + wdot[7] += qdot; + wdot[8] -= qdot; + wdot[19] -= qdot; + wdot[27] += qdot; + } + + { + // reaction 127: H2NN + NH2 <=> NH3 + NNH + const amrex::Real k_f = + 1.8 * exp((1.94) * logT - (-579.957207339939) * invT); + const amrex::Real qf = k_f * (sc[19] * sc[28]); + const amrex::Real qr = k_f * + exp(-(g_RT[19] - g_RT[22] - g_RT[27] + g_RT[28])) * + (sc[22] * sc[27]); + const amrex::Real qdot = qf - qr; + wdot[19] -= qdot; + wdot[22] += qdot; + wdot[27] += qdot; + wdot[28] -= qdot; + } + + { + // reaction 128: H2NN + HO2 <=> H2O2 + NNH + const amrex::Real k_f = + 0.029 * exp((2.69) * logT - (-804.895056954649) * invT); + const amrex::Real qf = k_f * (sc[10] * sc[19]); + const amrex::Real qr = k_f * + exp(-(-g_RT[9] + g_RT[10] + g_RT[19] - g_RT[27])) * + (sc[9] * sc[27]); + const amrex::Real qdot = qf - qr; + wdot[9] += qdot; + wdot[10] -= qdot; + wdot[19] -= qdot; + wdot[27] += qdot; + } + + { + // reaction 129: NNH <=> H + N2 + const amrex::Real k_f = 1000000000; + const amrex::Real qf = k_f * (sc[27]); + const amrex::Real qr = + k_f * exp(-(-g_RT[1] - g_RT[4] + g_RT[27])) * (refCinv) * (sc[1] * sc[4]); + const amrex::Real qdot = qf - qr; + wdot[1] += qdot; + wdot[4] += qdot; + wdot[27] -= qdot; + } + + { + // reaction 130: H + NNH <=> H2 + N2 + const amrex::Real k_f = + 240 * exp((1.5) * logT - (-449.724734229678) * invT); + const amrex::Real qf = k_f * (sc[4] * sc[27]); + const amrex::Real qr = + k_f * exp(-(-g_RT[1] - g_RT[3] + g_RT[4] + g_RT[27])) * (sc[1] * sc[3]); + const amrex::Real qdot = qf - qr; + wdot[1] += qdot; + wdot[3] += qdot; + wdot[4] -= qdot; + wdot[27] -= qdot; + } + + { + // reaction 131: NNH + O <=> H + N2O + const amrex::Real k_f = + 190000000 * exp((-0.274) * logT - (-11.0707666477038) * invT); + const amrex::Real qf = k_f * (sc[6] * sc[27]); + const amrex::Real qr = + k_f * exp(-(-g_RT[4] + g_RT[6] - g_RT[12] + g_RT[27])) * (sc[4] * sc[12]); + const amrex::Real qdot = qf - qr; + wdot[4] += qdot; + wdot[6] -= qdot; + wdot[12] += qdot; + wdot[27] -= qdot; + } + + { + // reaction 132: NNH + O <=> NH + NO + const amrex::Real k_f = + 520000 * exp((0.388) * logT - (-205.81561631413) * invT); + const amrex::Real qf = k_f * (sc[6] * sc[27]); + const amrex::Real qr = k_f * + exp(-(g_RT[6] - g_RT[11] - g_RT[26] + g_RT[27])) * + (sc[11] * sc[26]); + const amrex::Real qdot = qf - qr; + wdot[6] -= qdot; + wdot[11] += qdot; + wdot[26] += qdot; + wdot[27] -= qdot; + } + + { + // reaction 133: NNH + O <=> N2 + OH + const amrex::Real k_f = + 12000000 * exp((0.145) * logT - (-109.198016479624) * invT); + const amrex::Real qf = k_f * (sc[6] * sc[27]); + const amrex::Real qr = + k_f * exp(-(-g_RT[1] + g_RT[6] - g_RT[8] + g_RT[27])) * (sc[1] * sc[8]); + const amrex::Real qdot = qf - qr; + wdot[1] += qdot; + wdot[6] -= qdot; + wdot[8] += qdot; + wdot[27] -= qdot; + } + + { + // reaction 134: NNH + OH <=> H2O + N2 + const amrex::Real k_f = 50000000; + const amrex::Real qf = k_f * (sc[8] * sc[27]); + const amrex::Real qr = + k_f * exp(-(-g_RT[1] - g_RT[7] + g_RT[8] + g_RT[27])) * (sc[1] * sc[7]); + const amrex::Real qdot = qf - qr; + wdot[1] += qdot; + wdot[7] += qdot; + wdot[8] -= qdot; + wdot[27] -= qdot; + } + + { + // reaction 135: NNH + O2 <=> HO2 + N2 + const amrex::Real k_f = + 560000000 * exp((-0.385) * logT - (-6.54181665546136) * invT); + const amrex::Real qf = k_f * (sc[5] * sc[27]); + const amrex::Real qr = + k_f * exp(-(-g_RT[1] + g_RT[5] - g_RT[10] + g_RT[27])) * (sc[1] * sc[10]); + const amrex::Real qdot = qf - qr; + wdot[1] += qdot; + wdot[5] -= qdot; + wdot[10] += qdot; + wdot[27] -= qdot; + } + + { + // reaction 136: NH2 + NNH <=> N2 + NH3 + const amrex::Real k_f = + 0.92 * exp((1.94) * logT - (-579.655277340457) * invT); + const amrex::Real qf = k_f * (sc[27] * sc[28]); + const amrex::Real qr = k_f * + exp(-(-g_RT[1] - g_RT[22] + g_RT[27] + g_RT[28])) * + (sc[1] * sc[22]); + const amrex::Real qdot = qf - qr; + wdot[1] += qdot; + wdot[22] += qdot; + wdot[27] -= qdot; + wdot[28] -= qdot; + } + + { + // reaction 137: HO2 + NNH <=> H2O2 + N2 + const amrex::Real k_f = + 0.014 * exp((2.69) * logT - (-804.895056954649) * invT); + const amrex::Real qf = k_f * (sc[10] * sc[27]); + const amrex::Real qr = + k_f * exp(-(-g_RT[1] - g_RT[9] + g_RT[10] + g_RT[27])) * (sc[1] * sc[9]); + const amrex::Real qdot = qf - qr; + wdot[1] += qdot; + wdot[9] += qdot; + wdot[10] -= qdot; + wdot[27] -= qdot; + } + + { + // reaction 138: NNH + NO <=> HNO + N2 + const amrex::Real k_f = 50000000; + const amrex::Real qf = k_f * (sc[11] * sc[27]); + const amrex::Real qr = k_f * + exp(-(-g_RT[1] + g_RT[11] - g_RT[14] + g_RT[27])) * + (sc[1] * sc[14]); + const amrex::Real qdot = qf - qr; + wdot[1] += qdot; + wdot[11] -= qdot; + wdot[14] += qdot; + wdot[27] -= qdot; + } + + { + // reaction 139: HO2 + NO <=> NO2 + OH + const amrex::Real k_f = 2110000 * exp(-(-241.543999586265) * invT); + const amrex::Real qf = k_f * (sc[10] * sc[11]); + const amrex::Real qr = k_f * + exp(-(-g_RT[8] + g_RT[10] + g_RT[11] - g_RT[13])) * + (sc[8] * sc[13]); + const amrex::Real qdot = qf - qr; + wdot[8] += qdot; + wdot[10] -= qdot; + wdot[11] -= qdot; + wdot[13] += qdot; + } + + { + // reaction 141: NO + OH <=> HONO + const amrex::Real k_f = + 3.06167047673713e+17 * + exp((-4.17057130369966) * logT - (814.305516509223) * invT); + const amrex::Real qf = k_f * (sc[8] * sc[11]); + const amrex::Real qr = + k_f * exp(-(g_RT[8] + g_RT[11] - g_RT[16])) * (refC) * (sc[16]); + const amrex::Real qdot = qf - qr; + wdot[8] -= qdot; + wdot[11] -= qdot; + wdot[16] += qdot; + } + + { + // reaction 142: HNO <=> H + NO + const amrex::Real k_f = + 1.80302380411298e+20 * + exp((-3.00807431596138) * logT - (24093.7608096018) * invT); + const amrex::Real qf = k_f * (sc[14]); + const amrex::Real qr = k_f * exp(-(-g_RT[4] - g_RT[11] + g_RT[14])) * + (refCinv) * (sc[4] * sc[11]); + const amrex::Real qdot = qf - qr; + wdot[4] += qdot; + wdot[11] += qdot; + wdot[14] -= qdot; + } + + { + // reaction 143: H + HNO <=> H2 + NO + const amrex::Real k_f = + 968000 * exp((0.62) * logT - (181.157999689699) * invT); + const amrex::Real qf = k_f * (sc[4] * sc[14]); + const amrex::Real qr = + k_f * exp(-(-g_RT[3] + g_RT[4] - g_RT[11] + g_RT[14])) * (sc[3] * sc[11]); + const amrex::Real qdot = qf - qr; + wdot[3] += qdot; + wdot[4] -= qdot; + wdot[11] += qdot; + wdot[14] -= qdot; + } + + { + // reaction 144: HNO + O <=> NO + OH + const amrex::Real k_f = 22900000; + const amrex::Real qf = k_f * (sc[6] * sc[14]); + const amrex::Real qr = + k_f * exp(-(g_RT[6] - g_RT[8] - g_RT[11] + g_RT[14])) * (sc[8] * sc[11]); + const amrex::Real qdot = qf - qr; + wdot[6] -= qdot; + wdot[8] += qdot; + wdot[11] += qdot; + wdot[14] -= qdot; + } + + { + // reaction 145: HNO + OH <=> H + HONO + const amrex::Real k_f = + 0.00147617423719835 * + exp((2.72022852147986) * logT - (2291.20021238776) * invT); + const amrex::Real qf = k_f * (sc[8] * sc[14]); + const amrex::Real qr = + k_f * exp(-(-g_RT[4] + g_RT[8] + g_RT[14] - g_RT[16])) * (sc[4] * sc[16]); + const amrex::Real qdot = qf - qr; + wdot[4] += qdot; + wdot[8] -= qdot; + wdot[14] -= qdot; + wdot[16] += qdot; + } + + { + // reaction 146: HNO + OH <=> H2O + NO + const amrex::Real k_f = + 62955.2322092157 * + exp((0.390114260739931) * logT - (1903.061933838) * invT); + const amrex::Real qf = k_f * (sc[8] * sc[14]); + const amrex::Real qr = + k_f * exp(-(-g_RT[7] + g_RT[8] - g_RT[11] + g_RT[14])) * (sc[7] * sc[11]); + const amrex::Real qdot = qf - qr; + wdot[7] += qdot; + wdot[8] -= qdot; + wdot[11] += qdot; + wdot[14] -= qdot; + } + + { + // reaction 147: HNO + O2 <=> HO2 + NO + const amrex::Real k_f = 20000000 * exp(-(7495.9154538271) * invT); + const amrex::Real qf = k_f * (sc[5] * sc[14]); + const amrex::Real qr = k_f * + exp(-(g_RT[5] - g_RT[10] - g_RT[11] + g_RT[14])) * + (sc[10] * sc[11]); + const amrex::Real qdot = qf - qr; + wdot[5] -= qdot; + wdot[10] += qdot; + wdot[11] += qdot; + wdot[14] -= qdot; + } + + { + // reaction 148: HNO + NH2 <=> NH3 + NO + const amrex::Real k_f = + 36.7 * exp((1.63) * logT - (-629.0208322559) * invT); + const amrex::Real qf = k_f * (sc[14] * sc[28]); + const amrex::Real qr = k_f * + exp(-(-g_RT[11] + g_RT[14] - g_RT[22] + g_RT[28])) * + (sc[11] * sc[22]); + const amrex::Real qdot = qf - qr; + wdot[11] += qdot; + wdot[14] -= qdot; + wdot[22] += qdot; + wdot[28] -= qdot; + } + + { + // reaction 149: HNO + NO <=> N2O + OH + const amrex::Real k_f = 8510000 * exp(-(14900.2454744777) * invT); + const amrex::Real qf = k_f * (sc[11] * sc[14]); + const amrex::Real qr = k_f * + exp(-(-g_RT[8] + g_RT[11] - g_RT[12] + g_RT[14])) * + (sc[8] * sc[12]); + const amrex::Real qdot = qf - qr; + wdot[8] += qdot; + wdot[11] -= qdot; + wdot[12] += qdot; + wdot[14] -= qdot; + } + + { + // reaction 150: HNO + NO2 <=> HONO + NO + const amrex::Real k_f = + 0.0442 * exp((2.64) * logT - (2033.80047651635) * invT); + const amrex::Real qf = k_f * (sc[13] * sc[14]); + const amrex::Real qr = k_f * + exp(-(-g_RT[11] + g_RT[13] + g_RT[14] - g_RT[16])) * + (sc[11] * sc[16]); + const amrex::Real qdot = qf - qr; + wdot[11] += qdot; + wdot[13] -= qdot; + wdot[14] -= qdot; + wdot[16] += qdot; + } + + { + // reaction 151: HNO + NO2 <=> HNO2 + NO + const amrex::Real k_f = 603000 * exp(-(1001.40116495139) * invT); + const amrex::Real qf = k_f * (sc[13] * sc[14]); + const amrex::Real qr = k_f * + exp(-(-g_RT[11] + g_RT[13] + g_RT[14] - g_RT[15])) * + (sc[11] * sc[15]); + const amrex::Real qdot = qf - qr; + wdot[11] += qdot; + wdot[13] -= qdot; + wdot[14] -= qdot; + wdot[15] += qdot; + } + + { + // reaction 152: 2 HNO <=> H2O + N2O + const amrex::Real k_f = 843 * exp(-(1559.97166399463) * invT); + const amrex::Real qf = k_f * ((sc[14] * sc[14])); + const amrex::Real qr = k_f * + exp(-(-g_RT[7] - g_RT[12] + 2.000000 * g_RT[14])) * + (sc[7] * sc[12]); + const amrex::Real qdot = qf - qr; + wdot[7] += qdot; + wdot[12] += qdot; + wdot[14] -= 2.000000 * qdot; + } + + { + // reaction 153: HNO + HO2 <=> HNO2 + OH + const amrex::Real k_f = + 0.002 * exp((2.36) * logT - (4518.88565892638) * invT); + const amrex::Real qf = k_f * (sc[10] * sc[14]); + const amrex::Real qr = k_f * + exp(-(-g_RT[8] + g_RT[10] + g_RT[14] - g_RT[15])) * + (sc[8] * sc[15]); + const amrex::Real qdot = qf - qr; + wdot[8] += qdot; + wdot[10] -= qdot; + wdot[14] -= qdot; + wdot[15] += qdot; + } + + { + // reaction 154: H + HONO <=> H2 + NO2 + const amrex::Real k_f = + 0.00189 * exp((2.83) * logT - (715.926350440375) * invT); + const amrex::Real qf = k_f * (sc[4] * sc[16]); + const amrex::Real qr = + k_f * exp(-(-g_RT[3] + g_RT[4] - g_RT[13] + g_RT[16])) * (sc[3] * sc[13]); + const amrex::Real qdot = qf - qr; + wdot[3] += qdot; + wdot[4] -= qdot; + wdot[13] += qdot; + wdot[16] -= qdot; + } + + { + // reaction 155: H + HNO2 <=> H2 + NO2 + const amrex::Real k_f = + 0.0233 * exp((2.77) * logT - (-1017.45377659056) * invT); + const amrex::Real qf = k_f * (sc[4] * sc[15]); + const amrex::Real qr = + k_f * exp(-(-g_RT[3] + g_RT[4] - g_RT[13] + g_RT[15])) * (sc[3] * sc[13]); + const amrex::Real qdot = qf - qr; + wdot[3] += qdot; + wdot[4] -= qdot; + wdot[13] += qdot; + wdot[15] -= qdot; + } + + { + // reaction 156: H + HONO <=> H2O + NO + const amrex::Real k_f = + 4296.07864215026 * + exp((0.980114260739931) * logT - (2047.98258379891) * invT); + const amrex::Real qf = k_f * (sc[4] * sc[16]); + const amrex::Real qr = + k_f * exp(-(g_RT[4] - g_RT[7] - g_RT[11] + g_RT[16])) * (sc[7] * sc[11]); + const amrex::Real qdot = qf - qr; + wdot[4] -= qdot; + wdot[7] += qdot; + wdot[11] += qdot; + wdot[16] -= qdot; + } + + { + // reaction 157: HONO + O <=> NO2 + OH + const amrex::Real k_f = 12100000 * exp(-(2999.17132819613) * invT); + const amrex::Real qf = k_f * (sc[6] * sc[16]); + const amrex::Real qr = + k_f * exp(-(g_RT[6] - g_RT[8] - g_RT[13] + g_RT[16])) * (sc[8] * sc[13]); + const amrex::Real qdot = qf - qr; + wdot[6] -= qdot; + wdot[8] += qdot; + wdot[13] += qdot; + wdot[16] -= qdot; + } + + { + // reaction 158: HONO + OH <=> H2O + NO2 + const amrex::Real k_f = 1700000 * exp(-(-261.672666218454) * invT); + const amrex::Real qf = k_f * (sc[8] * sc[16]); + const amrex::Real qr = + k_f * exp(-(-g_RT[7] + g_RT[8] - g_RT[13] + g_RT[16])) * (sc[7] * sc[13]); + const amrex::Real qdot = qf - qr; + wdot[7] += qdot; + wdot[8] -= qdot; + wdot[13] += qdot; + wdot[16] -= qdot; + } + + { + // reaction 159: HONO + NH <=> NH2 + NO2 + const amrex::Real k_f = 10000000; + const amrex::Real qf = k_f * (sc[16] * sc[26]); + const amrex::Real qr = k_f * + exp(-(-g_RT[13] + g_RT[16] + g_RT[26] - g_RT[28])) * + (sc[13] * sc[28]); + const amrex::Real qdot = qf - qr; + wdot[13] += qdot; + wdot[16] -= qdot; + wdot[26] -= qdot; + wdot[28] += qdot; + } + + { + // reaction 160: HONO + NH2 <=> NH3 + NO2 + const amrex::Real k_f = + 0.000317 * exp((2.83) * logT - (-1796.48349692285) * invT); + const amrex::Real qf = k_f * (sc[16] * sc[28]); + const amrex::Real qr = k_f * + exp(-(-g_RT[13] + g_RT[16] - g_RT[22] + g_RT[28])) * + (sc[13] * sc[22]); + const amrex::Real qdot = qf - qr; + wdot[13] += qdot; + wdot[16] -= qdot; + wdot[22] += qdot; + wdot[28] -= qdot; + } + + { + // reaction 161: 2 HONO => H2O + NO + NO2 + const amrex::Real k_f = + 3.49e-07 * exp((3.64) * logT - (6108.34581953717) * invT); + const amrex::Real qf = k_f * ((sc[16] * sc[16])); + const amrex::Real qr = 0.0; + const amrex::Real qdot = qf - qr; + wdot[7] += qdot; + wdot[11] += qdot; + wdot[13] += qdot; + wdot[16] -= 2.000000 * qdot; + } + + { + // reaction 162: H2NO <=> HNOH + const amrex::Real k_f = + 1.27962488454253e+27 * + exp((-4.98971416937931) * logT - (22132.033206478) * invT); + const amrex::Real qf = k_f * (sc[29]); + const amrex::Real qr = k_f * exp(-(-g_RT[21] + g_RT[29])) * (sc[21]); + const amrex::Real qdot = qf - qr; + wdot[21] += qdot; + wdot[29] -= qdot; + } + + { + // reaction 164: H + H2NO <=> H2 + HNO + const amrex::Real k_f = 480 * exp((1.5) * logT - (784.917355322202) * invT); + const amrex::Real qf = k_f * (sc[4] * sc[29]); + const amrex::Real qr = + k_f * exp(-(-g_RT[3] + g_RT[4] - g_RT[14] + g_RT[29])) * (sc[3] * sc[14]); + const amrex::Real qdot = qf - qr; + wdot[3] += qdot; + wdot[4] -= qdot; + wdot[14] += qdot; + wdot[29] -= qdot; + } + + { + // reaction 165: H + H2NO <=> NH2 + OH + const amrex::Real k_f = 40000000; + const amrex::Real qf = k_f * (sc[4] * sc[29]); + const amrex::Real qr = + k_f * exp(-(g_RT[4] - g_RT[8] - g_RT[28] + g_RT[29])) * (sc[8] * sc[28]); + const amrex::Real qdot = qf - qr; + wdot[4] -= qdot; + wdot[8] += qdot; + wdot[28] += qdot; + wdot[29] -= qdot; + } + + { + // reaction 166: H2NO + O <=> HNO + OH + const amrex::Real k_f = 330 * exp((1.5) * logT - (244.965872913738) * invT); + const amrex::Real qf = k_f * (sc[6] * sc[29]); + const amrex::Real qr = + k_f * exp(-(g_RT[6] - g_RT[8] - g_RT[14] + g_RT[29])) * (sc[8] * sc[14]); + const amrex::Real qdot = qf - qr; + wdot[6] -= qdot; + wdot[8] += qdot; + wdot[14] += qdot; + wdot[29] -= qdot; + } + + { + // reaction 167: H2NO + OH <=> H2O + HNO + const amrex::Real k_f = 2.4 * exp((2) * logT - (599.934908972387) * invT); + const amrex::Real qf = k_f * (sc[8] * sc[29]); + const amrex::Real qr = + k_f * exp(-(-g_RT[7] + g_RT[8] - g_RT[14] + g_RT[29])) * (sc[7] * sc[14]); + const amrex::Real qdot = qf - qr; + wdot[7] += qdot; + wdot[8] -= qdot; + wdot[14] += qdot; + wdot[29] -= qdot; + } + + { + // reaction 168: H2NO + NO <=> 2 HNO + const amrex::Real k_f = 0.02 * exp((2) * logT - (6541.81665546136) * invT); + const amrex::Real qf = k_f * (sc[11] * sc[29]); + const amrex::Real qr = k_f * + exp(-(g_RT[11] - 2.000000 * g_RT[14] + g_RT[29])) * + ((sc[14] * sc[14])); + const amrex::Real qdot = qf - qr; + wdot[11] -= qdot; + wdot[14] += 2.000000 * qdot; + wdot[29] -= qdot; + } + + { + // reaction 169: H2NO + NO2 <=> HNO + HONO + const amrex::Real k_f = 600000 * exp(-(1006.43333160944) * invT); + const amrex::Real qf = k_f * (sc[13] * sc[29]); + const amrex::Real qr = k_f * + exp(-(g_RT[13] - g_RT[14] - g_RT[16] + g_RT[29])) * + (sc[14] * sc[16]); + const amrex::Real qdot = qf - qr; + wdot[13] -= qdot; + wdot[14] += qdot; + wdot[16] += qdot; + wdot[29] -= qdot; + } + + { + // reaction 170: H2NO + NH2 <=> HNO + NH3 + const amrex::Real k_f = + 1.8 * exp((1.94) * logT - (-291.865666166737) * invT); + const amrex::Real qf = k_f * (sc[28] * sc[29]); + const amrex::Real qr = k_f * + exp(-(-g_RT[14] - g_RT[22] + g_RT[28] + g_RT[29])) * + (sc[14] * sc[22]); + const amrex::Real qdot = qf - qr; + wdot[14] += qdot; + wdot[22] += qdot; + wdot[28] -= qdot; + wdot[29] -= qdot; + } + + { + // reaction 171: H2NO + O2 <=> HNO + HO2 + const amrex::Real k_f = + 0.00023 * exp((2.994) * logT - (8303.07498577788) * invT); + const amrex::Real qf = k_f * (sc[5] * sc[29]); + const amrex::Real qr = k_f * + exp(-(g_RT[5] - g_RT[10] - g_RT[14] + g_RT[29])) * + (sc[10] * sc[14]); + const amrex::Real qdot = qf - qr; + wdot[5] -= qdot; + wdot[10] += qdot; + wdot[14] += qdot; + wdot[29] -= qdot; + } + + { + // reaction 172: H2NO + HO2 <=> H2O2 + HNO + const amrex::Real k_f = + 0.336 * exp((2) * logT - (-721.612698763968) * invT); + const amrex::Real qf = k_f * (sc[10] * sc[29]); + const amrex::Real qr = k_f * + exp(-(-g_RT[9] + g_RT[10] - g_RT[14] + g_RT[29])) * + (sc[9] * sc[14]); + const amrex::Real qdot = qf - qr; + wdot[9] += qdot; + wdot[10] -= qdot; + wdot[14] += qdot; + wdot[29] -= qdot; + } + + { + // reaction 173: H + NO3 <=> NO2 + OH + const amrex::Real k_f = 66100000; + const amrex::Real qf = k_f * (sc[4] * sc[25]); + const amrex::Real qr = + k_f * exp(-(g_RT[4] - g_RT[8] - g_RT[13] + g_RT[25])) * (sc[8] * sc[13]); + const amrex::Real qdot = qf - qr; + wdot[4] -= qdot; + wdot[8] += qdot; + wdot[13] += qdot; + wdot[25] -= qdot; + } + + { + // reaction 174: NO3 + O <=> NO2 + O2 + const amrex::Real k_f = 10240000; + const amrex::Real qf = k_f * (sc[6] * sc[25]); + const amrex::Real qr = + k_f * exp(-(-g_RT[5] + g_RT[6] - g_RT[13] + g_RT[25])) * (sc[5] * sc[13]); + const amrex::Real qdot = qf - qr; + wdot[5] += qdot; + wdot[6] -= qdot; + wdot[13] += qdot; + wdot[25] -= qdot; + } + + { + // reaction 175: NO3 + OH <=> HO2 + NO2 + const amrex::Real k_f = 14000000; + const amrex::Real qf = k_f * (sc[8] * sc[25]); + const amrex::Real qr = k_f * + exp(-(g_RT[8] - g_RT[10] - g_RT[13] + g_RT[25])) * + (sc[10] * sc[13]); + const amrex::Real qdot = qf - qr; + wdot[8] -= qdot; + wdot[10] += qdot; + wdot[13] += qdot; + wdot[25] -= qdot; + } + + { + // reaction 176: HO2 + NO3 => NO2 + O2 + OH + const amrex::Real k_f = 1510000; + const amrex::Real qf = k_f * (sc[10] * sc[25]); + const amrex::Real qr = 0.0; + const amrex::Real qdot = qf - qr; + wdot[5] += qdot; + wdot[8] += qdot; + wdot[10] -= qdot; + wdot[13] += qdot; + wdot[25] -= qdot; + } + + { + // reaction 178: NO3 <=> NO + O2 + const amrex::Real k_f = 2500000 * exp(-(6098.9859895532) * invT); + const amrex::Real qf = k_f * (sc[25]); + const amrex::Real qr = k_f * exp(-(-g_RT[5] - g_RT[11] + g_RT[25])) * + (refCinv) * (sc[5] * sc[11]); + const amrex::Real qdot = qf - qr; + wdot[5] += qdot; + wdot[11] += qdot; + wdot[25] -= qdot; + } + + { + // reaction 179: 2 NO3 => 2 NO2 + O2 + const amrex::Real k_f = 512000 * exp(-(2450.66516246898) * invT); + const amrex::Real qf = k_f * ((sc[25] * sc[25])); + const amrex::Real qr = 0.0; + const amrex::Real qdot = qf - qr; + wdot[5] += qdot; + wdot[13] += 2.000000 * qdot; + wdot[25] -= 2.000000 * qdot; + } + + { + // reaction 180: H + NO2 <=> NO + OH + const amrex::Real k_f = 88500000; + const amrex::Real qf = k_f * (sc[4] * sc[13]); + const amrex::Real qr = + k_f * exp(-(g_RT[4] - g_RT[8] - g_RT[11] + g_RT[13])) * (sc[8] * sc[11]); + const amrex::Real qdot = qf - qr; + wdot[4] -= qdot; + wdot[8] += qdot; + wdot[11] += qdot; + wdot[13] -= qdot; + } + + { + // reaction 181: NO2 + O <=> NO + O2 + const amrex::Real k_f = 3920000 * exp(-(-119.765566461523) * invT); + const amrex::Real qf = k_f * (sc[6] * sc[13]); + const amrex::Real qr = + k_f * exp(-(-g_RT[5] + g_RT[6] - g_RT[11] + g_RT[13])) * (sc[5] * sc[11]); + const amrex::Real qdot = qf - qr; + wdot[5] += qdot; + wdot[6] -= qdot; + wdot[11] += qdot; + wdot[13] -= qdot; + } + + { + // reaction 183: HO2 + NO2 <=> HONO + O2 + const amrex::Real k_f = + 1.9e-06 * exp((3.32) * logT - (1531.79153070957) * invT); + const amrex::Real qf = k_f * (sc[10] * sc[13]); + const amrex::Real qr = k_f * + exp(-(-g_RT[5] + g_RT[10] + g_RT[13] - g_RT[16])) * + (sc[5] * sc[16]); + const amrex::Real qdot = qf - qr; + wdot[5] += qdot; + wdot[10] -= qdot; + wdot[13] -= qdot; + wdot[16] += qdot; + } + + { + // reaction 184: HO2 + NO2 <=> HNO2 + O2 + const amrex::Real k_f = + 1.9e-05 * exp((3.26) * logT - (2507.52864570492) * invT); + const amrex::Real qf = k_f * (sc[10] * sc[13]); + const amrex::Real qr = k_f * + exp(-(-g_RT[5] + g_RT[10] + g_RT[13] - g_RT[15])) * + (sc[5] * sc[15]); + const amrex::Real qdot = qf - qr; + wdot[5] += qdot; + wdot[10] -= qdot; + wdot[13] -= qdot; + wdot[15] += qdot; + } + + { + // reaction 185: 2 NO2 => 2 NO + O2 + const amrex::Real k_f = 1630000 * exp(-(13098.7298108969) * invT); + const amrex::Real qf = k_f * ((sc[13] * sc[13])); + const amrex::Real qr = 0.0; + const amrex::Real qdot = qf - qr; + wdot[5] += qdot; + wdot[11] += 2.000000 * qdot; + wdot[13] -= 2.000000 * qdot; + } + + { + // reaction 186: 2 NO2 <=> NO + NO3 + const amrex::Real k_f = 10000000 * exp(-(12982.9899777618) * invT); + const amrex::Real qf = k_f * ((sc[13] * sc[13])); + const amrex::Real qr = k_f * + exp(-(-g_RT[11] + 2.000000 * g_RT[13] - g_RT[25])) * + (sc[11] * sc[25]); + const amrex::Real qdot = qf - qr; + wdot[11] += qdot; + wdot[13] -= 2.000000 * qdot; + wdot[25] += qdot; + } + + { + // reaction 188: H + N2O <=> N2 + OH + const amrex::Real k_f = 25300 * exp(-(2289.63582941147) * invT); + const amrex::Real qf = k_f * (sc[4] * sc[12]); + const amrex::Real qr = + k_f * exp(-(-g_RT[1] + g_RT[4] - g_RT[8] + g_RT[12])) * (sc[1] * sc[8]); + const amrex::Real qdot = qf - qr; + wdot[1] += qdot; + wdot[4] -= qdot; + wdot[8] += qdot; + wdot[12] -= qdot; + } + + { + // reaction 189: H + N2O <=> N2 + OH + const amrex::Real k_f = 500000000 * exp(-(9108.22165106543) * invT); + const amrex::Real qf = k_f * (sc[4] * sc[12]); + const amrex::Real qr = + k_f * exp(-(-g_RT[1] + g_RT[4] - g_RT[8] + g_RT[12])) * (sc[1] * sc[8]); + const amrex::Real qdot = qf - qr; + wdot[1] += qdot; + wdot[4] -= qdot; + wdot[8] += qdot; + wdot[12] -= qdot; + } + + { + // reaction 190: N2O + O <=> 2 NO + const amrex::Real k_f = 66200000 * exp(-(13400.6598103797) * invT); + const amrex::Real qf = k_f * (sc[6] * sc[12]); + const amrex::Real qr = k_f * + exp(-(g_RT[6] - 2.000000 * g_RT[11] + g_RT[12])) * + ((sc[11] * sc[11])); + const amrex::Real qdot = qf - qr; + wdot[6] -= qdot; + wdot[11] += 2.000000 * qdot; + wdot[12] -= qdot; + } + + { + // reaction 191: N2O + O <=> N2 + O2 + const amrex::Real k_f = 102000000 * exp(-(14100.1309758482) * invT); + const amrex::Real qf = k_f * (sc[6] * sc[12]); + const amrex::Real qr = + k_f * exp(-(-g_RT[1] - g_RT[5] + g_RT[6] + g_RT[12])) * (sc[1] * sc[5]); + const amrex::Real qdot = qf - qr; + wdot[1] += qdot; + wdot[5] += qdot; + wdot[6] -= qdot; + wdot[12] -= qdot; + } + + { + // reaction 192: N2O + OH <=> HO2 + N2 + const amrex::Real k_f = + 1e-08 * exp((4.72) * logT - (18397.6013018206) * invT); + const amrex::Real qf = k_f * (sc[8] * sc[12]); + const amrex::Real qr = + k_f * exp(-(-g_RT[1] + g_RT[8] - g_RT[10] + g_RT[12])) * (sc[1] * sc[10]); + const amrex::Real qdot = qf - qr; + wdot[1] += qdot; + wdot[8] -= qdot; + wdot[10] += qdot; + wdot[12] -= qdot; + } + + { + // reaction 193: N2O + NO <=> N2 + NO2 + const amrex::Real k_f = + 0.525 * exp((2.23) * logT - (23298.9316267585) * invT); + const amrex::Real qf = k_f * (sc[11] * sc[12]); + const amrex::Real qr = k_f * + exp(-(-g_RT[1] + g_RT[11] + g_RT[12] - g_RT[13])) * + (sc[1] * sc[13]); + const amrex::Real qdot = qf - qr; + wdot[1] += qdot; + wdot[11] -= qdot; + wdot[12] -= qdot; + wdot[13] += qdot; + } + + { + // reaction 194: HNO2 + O <=> NO2 + OH + const amrex::Real k_f = 170 * exp((1.5) * logT - (1190.30870129448) * invT); + const amrex::Real qf = k_f * (sc[6] * sc[15]); + const amrex::Real qr = + k_f * exp(-(g_RT[6] - g_RT[8] - g_RT[13] + g_RT[15])) * (sc[8] * sc[13]); + const amrex::Real qdot = qf - qr; + wdot[6] -= qdot; + wdot[8] += qdot; + wdot[13] += qdot; + wdot[15] -= qdot; + } + + { + // reaction 195: HNO2 + OH <=> H2O + NO2 + const amrex::Real k_f = 1.2 * exp((2) * logT - (-399.956605981591) * invT); + const amrex::Real qf = k_f * (sc[8] * sc[15]); + const amrex::Real qr = + k_f * exp(-(-g_RT[7] + g_RT[8] - g_RT[13] + g_RT[15])) * (sc[7] * sc[13]); + const amrex::Real qdot = qf - qr; + wdot[7] += qdot; + wdot[8] -= qdot; + wdot[13] += qdot; + wdot[15] -= qdot; + } + + { + // reaction 196: HNO2 <=> HONO + const amrex::Real k_f = + 1.64828721239033e+30 * + exp((-6.47811251253514) * logT - (22326.026173795) * invT); + const amrex::Real qf = k_f * (sc[15]); + const amrex::Real qr = k_f * exp(-(g_RT[15] - g_RT[16])) * (sc[16]); + const amrex::Real qdot = qf - qr; + wdot[15] -= qdot; + wdot[16] += qdot; + } + + { + // reaction 197: HNO2 + NH2 <=> NH3 + NO2 + const amrex::Real k_f = 28000 * exp(-(-2898.52799503519) * invT); + const amrex::Real qf = k_f * (sc[15] * sc[28]); + const amrex::Real qr = k_f * + exp(-(-g_RT[13] + g_RT[15] - g_RT[22] + g_RT[28])) * + (sc[13] * sc[22]); + const amrex::Real qdot = qf - qr; + wdot[13] += qdot; + wdot[15] -= qdot; + wdot[22] += qdot; + wdot[28] -= qdot; + } + + { + // reaction 198: H + HNO2 <=> H2O + NO + const amrex::Real k_f = + 3380.11409397342 * exp((1.07) * logT - (2800.41224478498) * invT); + const amrex::Real qf = k_f * (sc[4] * sc[15]); + const amrex::Real qr = + k_f * exp(-(g_RT[4] - g_RT[7] - g_RT[11] + g_RT[15])) * (sc[7] * sc[11]); + const amrex::Real qdot = qf - qr; + wdot[4] -= qdot; + wdot[7] += qdot; + wdot[11] += qdot; + wdot[15] -= qdot; + } + + { + // reaction 199: H + HNO2 <=> HNO + OH + const amrex::Real k_f = + 36.4965581754801 * exp((1.78) * logT - (2802.89957915971) * invT); + const amrex::Real qf = k_f * (sc[4] * sc[15]); + const amrex::Real qr = + k_f * exp(-(g_RT[4] - g_RT[8] - g_RT[14] + g_RT[15])) * (sc[8] * sc[14]); + const amrex::Real qdot = qf - qr; + wdot[4] -= qdot; + wdot[8] += qdot; + wdot[14] += qdot; + wdot[15] -= qdot; + } + + { + // reaction 200: NO + OH <=> HNO2 + const amrex::Real k_f = + 1437278448551.32 * + exp((-3.03239947553856) * logT - (1958.298666124) * invT); + const amrex::Real qf = k_f * (sc[8] * sc[11]); + const amrex::Real qr = + k_f * exp(-(g_RT[8] + g_RT[11] - g_RT[15])) * (refC) * (sc[15]); + const amrex::Real qdot = qf - qr; + wdot[8] -= qdot; + wdot[11] -= qdot; + wdot[15] += qdot; + } + + { + // reaction 202: HONO2 + OH <=> H2O + NO3 + const amrex::Real k_f = 9040 * exp(-(-623.988665597852) * invT); + const amrex::Real qf = k_f * (sc[8] * sc[17]); + const amrex::Real qr = + k_f * exp(-(-g_RT[7] + g_RT[8] + g_RT[17] - g_RT[25])) * (sc[7] * sc[25]); + const amrex::Real qdot = qf - qr; + wdot[7] += qdot; + wdot[8] -= qdot; + wdot[17] -= qdot; + wdot[25] += qdot; + } +} + +// compute the production rate for each species +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKWC(const amrex::Real T, amrex::Real C[], amrex::Real wdot[]) +{ + + // convert to SI + for (int id = 0; id < 31; ++id) { + C[id] *= 1.0e6; + } + + // convert to chemkin units + productionRate(wdot, C, T); + + // convert to chemkin units + for (int id = 0; id < 31; ++id) { + C[id] *= 1.0e-6; + wdot[id] *= 1.0e-6; + } +} + +// Returns the molar production rate of species +// Given P, T, and mass fractions +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKWYP( + const amrex::Real P, + const amrex::Real T, + const amrex::Real y[], + amrex::Real wdot[]) +{ + amrex::Real c[31]; // temporary storage + amrex::Real YOW = 0; + amrex::Real PWORT; + + // Compute inverse of mean molecular wt first + for (int i = 0; i < 31; i++) { + YOW += y[i] * imw(i); + } + // PW/RT (see Eq. 7) + PWORT = P / (YOW * 8.31446261815324e+07 * T); + // multiply by 1e6 so c goes to SI + PWORT *= 1e6; + // Now compute conversion (and go to SI) + for (int i = 0; i < 31; i++) { + c[i] = PWORT * y[i] * imw(i); + } + + // convert to chemkin units + productionRate(wdot, c, T); + + // convert to chemkin units + for (int id = 0; id < 31; ++id) { + wdot[id] *= 1.0e-6; + } +} + +// Returns the molar production rate of species +// Given P, T, and mole fractions +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKWXP( + const amrex::Real P, + const amrex::Real T, + const amrex::Real x[], + amrex::Real wdot[]) +{ + amrex::Real c[31]; // temporary storage + amrex::Real PORT = + 1e6 * P / (8.31446261815324e+07 * T); // 1e6 * P/RT so c goes to SI units + + // Compute conversion, see Eq 10 + for (int id = 0; id < 31; ++id) { + c[id] = x[id] * PORT; + } + + // convert to chemkin units + productionRate(wdot, c, T); + + // convert to chemkin units + for (int id = 0; id < 31; ++id) { + wdot[id] *= 1.0e-6; + } +} + +// Returns the molar production rate of species +// Given rho, T, and mass fractions +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKWYR( + const amrex::Real rho, + const amrex::Real T, + const amrex::Real y[], + amrex::Real wdot[]) +{ + amrex::Real c[31]; // temporary storage + + // See Eq 8 with an extra 1e6 so c goes to SI + for (int i = 0; i < 31; i++) { + c[i] = 1e6 * rho * y[i] * imw(i); + } + + // call productionRate + productionRate(wdot, c, T); + + // convert to chemkin units + for (int id = 0; id < 31; ++id) { + wdot[id] *= 1.0e-6; + } +} + +// Returns the molar production rate of species +// Given rho, T, and mole fractions +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKWXR( + const amrex::Real rho, + const amrex::Real T, + const amrex::Real x[], + amrex::Real wdot[]) +{ + amrex::Real c[31]; // temporary storage + amrex::Real XW = 0; // See Eq 4, 11 in CK Manual + amrex::Real ROW; + // Compute mean molecular wt first + XW += x[0] * 39.950000; // AR + XW += x[1] * 28.014000; // N2 + XW += x[2] * 4.002602; // HE + XW += x[3] * 2.016000; // H2 + XW += x[4] * 1.008000; // H + XW += x[5] * 31.998000; // O2 + XW += x[6] * 15.999000; // O + XW += x[7] * 18.015000; // H2O + XW += x[8] * 17.007000; // OH + XW += x[9] * 34.014000; // H2O2 + XW += x[10] * 33.006000; // HO2 + XW += x[11] * 30.006000; // NO + XW += x[12] * 44.013000; // N2O + XW += x[13] * 46.005000; // NO2 + XW += x[14] * 31.014000; // HNO + XW += x[15] * 47.013000; // HNO2 + XW += x[16] * 47.013000; // HONO + XW += x[17] * 63.012000; // HONO2 + XW += x[18] * 30.030000; // N2H2 + XW += x[19] * 30.030000; // H2NN + XW += x[20] * 33.030000; // NH2OH + XW += x[21] * 32.022000; // HNOH + XW += x[22] * 17.031000; // NH3 + XW += x[23] * 32.046000; // N2H4 + XW += x[24] * 14.007000; // N + XW += x[25] * 62.004000; // NO3 + XW += x[26] * 15.015000; // NH + XW += x[27] * 29.022000; // NNH + XW += x[28] * 16.023000; // NH2 + XW += x[29] * 32.022000; // H2NO + XW += x[30] * 31.038000; // N2H3 + // Extra 1e6 factor to take c to SI + ROW = 1e6 * rho / XW; + + // Compute conversion, see Eq 11 + for (int id = 0; id < 31; ++id) { + c[id] = x[id] * ROW; + } + + // convert to chemkin units + productionRate(wdot, c, T); + + // convert to chemkin units + for (int id = 0; id < 31; ++id) { + wdot[id] *= 1.0e-6; + } +} + +// species unit charge number +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKCHRG(int kcharge[]) +{ + kcharge[0] = 0; // AR + kcharge[1] = 0; // N2 + kcharge[2] = 0; // HE + kcharge[3] = 0; // H2 + kcharge[4] = 0; // H + kcharge[5] = 0; // O2 + kcharge[6] = 0; // O + kcharge[7] = 0; // H2O + kcharge[8] = 0; // OH + kcharge[9] = 0; // H2O2 + kcharge[10] = 0; // HO2 + kcharge[11] = 0; // NO + kcharge[12] = 0; // N2O + kcharge[13] = 0; // NO2 + kcharge[14] = 0; // HNO + kcharge[15] = 0; // HNO2 + kcharge[16] = 0; // HONO + kcharge[17] = 0; // HONO2 + kcharge[18] = 0; // N2H2 + kcharge[19] = 0; // H2NN + kcharge[20] = 0; // NH2OH + kcharge[21] = 0; // HNOH + kcharge[22] = 0; // NH3 + kcharge[23] = 0; // N2H4 + kcharge[24] = 0; // N + kcharge[25] = 0; // NO3 + kcharge[26] = 0; // NH + kcharge[27] = 0; // NNH + kcharge[28] = 0; // NH2 + kcharge[29] = 0; // H2NO + kcharge[30] = 0; // N2H3 +} + +// species charge per unit mass +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +CKCHRGMASS(amrex::Real zk[]) +{ + + int kchrg[31]; + CKCHRG(kchrg); + + for (int id = 0; id < 31; ++id) { + zk[id] = 6.02214076e+23 * 1.60217663e-19 * kchrg[id] * imw(id); + } +} + +// compute an approx to the reaction Jacobian +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +aJacobian_precond( + amrex::Real* J, const amrex::Real* sc, const amrex::Real T, const int HP) +{ + +#if defined(PELE_COMPILE_AJACOBIAN) || !defined(AMREX_USE_HIP) + for (int i = 0; i < 1024; i++) { + J[i] = 0.0; + } + + amrex::Real wdot[31]; + for (auto& val : wdot) { + val = 0.0; + } + + const amrex::Real invT = 1.0 / T; + const amrex::Real invT2 = invT * invT; + const amrex::Real logT = log(T); + + // reference concentration: P_atm / (RT) in inverse mol/m^3 + amrex::Real refC = 101325 / 8.31446 / T; + amrex::Real refCinv = 1.0 / refC; + + // compute the mixture concentration + amrex::Real mixture = 0.0; + for (int k = 0; k < 31; ++k) { + mixture += sc[k]; + } + + // compute the Gibbs free energy + amrex::Real g_RT[31]; + gibbs(g_RT, T); + + // compute the species enthalpy + amrex::Real h_RT[31]; + speciesEnthalpy(h_RT, T); + + amrex::Real phi_f, k_f, k_r, phi_r, Kc, q, q_nocor, Corr, alpha; + amrex::Real dlnkfdT, dlnk0dT, dlnKcdT, dkrdT, dqdT; + amrex::Real dqdci, dcdc_fac, dqdc[31]; + amrex::Real Pr, fPr, F, k_0, logPr; + amrex::Real logFcent, troe_c, troe_n, troePr_den, troePr, troe; + amrex::Real Fcent1, Fcent2, Fcent3, Fcent; + amrex::Real dlogFdc, dlogFdn, dlogFdcn_fac; + amrex::Real dlogPrdT, dlogfPrdT, dlogFdT, dlogFcentdT, dlogFdlogPr, dlnCorrdT; + const amrex::Real ln10 = log(10.0); + const amrex::Real log10e = 1.0 / log(10.0); + // reaction 8: H2O2 (+M) <=> 2 OH (+M) + // a third-body and pressure-fall-off reaction + // 3-body correction factor + alpha = mixture + (1.5 - 1) * sc[1] + (0.65 - 1) * sc[2] + (3.7 - 1) * sc[3] + + (1.2 - 1) * sc[5] + (7.65 - 1) * sc[7] + (7.7 - 1) * sc[9]; + // forward + phi_f = sc[9]; + k_f = 2000000000000 * exp(0.9 * logT - (24531.3092413143) * invT); + dlnkfdT = 0.9 * invT + (24531.3092413143) * invT2; + // pressure-fall-off + k_0 = 2.49e+24 * exp(-2.3 * logT - (24531.3092413143) * invT); + Pr = 1e-6 * alpha / k_f * k_0; + fPr = Pr / (1.0 + Pr); + dlnk0dT = -2.3 * invT + (24531.3092413143) * invT2; + dlogPrdT = log10e * (dlnk0dT - dlnkfdT); + dlogfPrdT = dlogPrdT / (1.0 + Pr); + // Troe form + logPr = log10(Pr); + Fcent1 = (1. - 0.43) * exp(-T / 1e-30); + Fcent2 = 0.43 * exp(-T / 1e+30); + Fcent3 = 0.; + Fcent = Fcent1 + Fcent2 + Fcent3; + logFcent = log10(Fcent); + troe_c = -.4 - .67 * logFcent; + troe_n = .75 - 1.27 * logFcent; + troePr_den = 1.0 / (troe_n - .14 * (troe_c + logPr)); + troePr = (troe_c + logPr) * troePr_den; + troe = 1.0 / (1.0 + troePr * troePr); + F = exp(M_LN10 * logFcent * troe); + dlogFcentdT = log10e / Fcent * (-Fcent1 / 1e-30 - Fcent2 / 1e+30); + dlogFdcn_fac = 2.0 * logFcent * troe * troe * troePr * troePr_den; + dlogFdc = -troe_n * dlogFdcn_fac * troePr_den; + dlogFdn = dlogFdcn_fac * troePr; + dlogFdlogPr = dlogFdc; + dlogFdT = dlogFcentdT * (troe - 0.67 * dlogFdc - 1.27 * dlogFdn) + + dlogFdlogPr * dlogPrdT; + // reverse + phi_r = (sc[8] * sc[8]); + Kc = refC * exp(-2.000000 * g_RT[8] + g_RT[9]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[9]) + (2.000000 * h_RT[8]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + Corr = fPr * F; + q = Corr * q_nocor; + dlnCorrdT = ln10 * (dlogfPrdT + dlogFdT); + dqdT = Corr * (dlnkfdT * k_f * phi_f - dkrdT * phi_r) + dlnCorrdT * q; + // update wdot + wdot[8] += 2 * q; // OH + wdot[9] -= q; // H2O2 + // for convenience + k_f *= Corr; + k_r *= Corr; + dcdc_fac = 0.0; + dqdc[0] = dcdc_fac; + dqdc[1] = 1.5 * dcdc_fac; + dqdc[2] = 0.65 * dcdc_fac; + dqdc[3] = 3.7 * dcdc_fac; + dqdc[4] = dcdc_fac; + dqdc[5] = 1.2 * dcdc_fac; + dqdc[6] = dcdc_fac; + dqdc[7] = 7.65 * dcdc_fac; + dqdc[8] = dcdc_fac - k_r * 2.000000 * sc[8]; + dqdc[9] = 7.7 * dcdc_fac + k_f; + dqdc[10] = dcdc_fac; + dqdc[11] = dcdc_fac; + dqdc[12] = dcdc_fac; + dqdc[13] = dcdc_fac; + dqdc[14] = dcdc_fac; + dqdc[15] = dcdc_fac; + dqdc[16] = dcdc_fac; + dqdc[17] = dcdc_fac; + dqdc[18] = dcdc_fac; + dqdc[19] = dcdc_fac; + dqdc[20] = dcdc_fac; + dqdc[21] = dcdc_fac; + dqdc[22] = dcdc_fac; + dqdc[23] = dcdc_fac; + dqdc[24] = dcdc_fac; + dqdc[25] = dcdc_fac; + dqdc[26] = dcdc_fac; + dqdc[27] = dcdc_fac; + dqdc[28] = dcdc_fac; + dqdc[29] = dcdc_fac; + dqdc[30] = dcdc_fac; + for (int k = 0; k < 31; k++) { + J[32 * k + 8] += 2 * dqdc[k]; + J[32 * k + 9] -= dqdc[k]; + } + J[1000] += 2 * dqdT; // dwdot[OH]/dT + J[1001] -= dqdT; // dwdot[H2O2]/dT + + // reaction 21: H + O2 (+M) <=> HO2 (+M) + // a third-body and pressure-fall-off reaction + // 3-body correction factor + alpha = mixture + (0.5 - 1) * sc[0] + (0.64 - 1) * sc[2] + (1.3 - 1) * sc[3] + + (10 - 1) * sc[7]; + // forward + phi_f = sc[4] * sc[5]; + k_f = 4650000 * exp(0.44 * logT); + dlnkfdT = 0.44 * invT; + // pressure-fall-off + k_0 = 1.737e+19 * exp(-1.23 * logT); + Pr = 1e-12 * alpha / k_f * k_0; + fPr = Pr / (1.0 + Pr); + dlnk0dT = -1.23 * invT; + dlogPrdT = log10e * (dlnk0dT - dlnkfdT); + dlogfPrdT = dlogPrdT / (1.0 + Pr); + // Troe form + logPr = log10(Pr); + Fcent1 = (1. - 0.67) * exp(-T / 1e-30); + Fcent2 = 0.67 * exp(-T / 1e+30); + Fcent3 = exp(-1e+30 * invT); + Fcent = Fcent1 + Fcent2 + Fcent3; + logFcent = log10(Fcent); + troe_c = -.4 - .67 * logFcent; + troe_n = .75 - 1.27 * logFcent; + troePr_den = 1.0 / (troe_n - .14 * (troe_c + logPr)); + troePr = (troe_c + logPr) * troePr_den; + troe = 1.0 / (1.0 + troePr * troePr); + F = exp(M_LN10 * logFcent * troe); + dlogFcentdT = log10e / Fcent * + (-Fcent1 / 1e-30 - Fcent2 / 1e+30 + Fcent3 * 1e+30 * invT2); + dlogFdcn_fac = 2.0 * logFcent * troe * troe * troePr * troePr_den; + dlogFdc = -troe_n * dlogFdcn_fac * troePr_den; + dlogFdn = dlogFdcn_fac * troePr; + dlogFdlogPr = dlogFdc; + dlogFdT = dlogFcentdT * (troe - 0.67 * dlogFdc - 1.27 * dlogFdn) + + dlogFdlogPr * dlogPrdT; + // reverse + phi_r = sc[10]; + Kc = refCinv * exp(g_RT[4] + g_RT[5] - g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[5]) + (h_RT[10]) + 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + Corr = fPr * F; + q = Corr * q_nocor; + dlnCorrdT = ln10 * (dlogfPrdT + dlogFdT); + dqdT = Corr * (dlnkfdT * k_f * phi_f - dkrdT * phi_r) + dlnCorrdT * q; + // update wdot + wdot[4] -= q; // H + wdot[5] -= q; // O2 + wdot[10] += q; // HO2 + // for convenience + k_f *= Corr; + k_r *= Corr; + dcdc_fac = 0.0; + dqdc[0] = 0.5 * dcdc_fac; + dqdc[1] = dcdc_fac; + dqdc[2] = 0.64 * dcdc_fac; + dqdc[3] = 1.3 * dcdc_fac; + dqdc[4] = dcdc_fac + k_f * sc[5]; + dqdc[5] = dcdc_fac + k_f * sc[4]; + dqdc[6] = dcdc_fac; + dqdc[7] = 10 * dcdc_fac; + dqdc[8] = dcdc_fac; + dqdc[9] = dcdc_fac; + dqdc[10] = dcdc_fac - k_r; + dqdc[11] = dcdc_fac; + dqdc[12] = dcdc_fac; + dqdc[13] = dcdc_fac; + dqdc[14] = dcdc_fac; + dqdc[15] = dcdc_fac; + dqdc[16] = dcdc_fac; + dqdc[17] = dcdc_fac; + dqdc[18] = dcdc_fac; + dqdc[19] = dcdc_fac; + dqdc[20] = dcdc_fac; + dqdc[21] = dcdc_fac; + dqdc[22] = dcdc_fac; + dqdc[23] = dcdc_fac; + dqdc[24] = dcdc_fac; + dqdc[25] = dcdc_fac; + dqdc[26] = dcdc_fac; + dqdc[27] = dcdc_fac; + dqdc[28] = dcdc_fac; + dqdc[29] = dcdc_fac; + dqdc[30] = dcdc_fac; + for (int k = 0; k < 31; k++) { + J[32 * k + 4] -= dqdc[k]; + J[32 * k + 5] -= dqdc[k]; + J[32 * k + 10] += dqdc[k]; + } + J[996] -= dqdT; // dwdot[H]/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + + // reaction 47: NH2OH (+M) <=> NH2 + OH (+M) + // a third-body and pressure-fall-off reaction + // 3-body correction factor + alpha = mixture; + // forward + phi_f = sc[20]; + k_f = 1.4e+20 * exp(-1.31 * logT - (32246.1239447664) * invT); + dlnkfdT = -1.31 * invT + (32246.1239447664) * invT2; + // pressure-fall-off + k_0 = 5.4e+37 * exp(-5.96 * logT - (33606.3185924366) * invT); + Pr = 1e-6 * alpha / k_f * k_0; + fPr = Pr / (1.0 + Pr); + dlnk0dT = -5.96 * invT + (33606.3185924366) * invT2; + dlogPrdT = log10e * (dlnk0dT - dlnkfdT); + dlogfPrdT = dlogPrdT / (1.0 + Pr); + // Troe form + logPr = log10(Pr); + Fcent1 = (1. - 0.35) * exp(-T / 1e-30); + Fcent2 = 0.35 * exp(-T / 1e+30); + Fcent3 = exp(-1e+30 * invT); + Fcent = Fcent1 + Fcent2 + Fcent3; + logFcent = log10(Fcent); + troe_c = -.4 - .67 * logFcent; + troe_n = .75 - 1.27 * logFcent; + troePr_den = 1.0 / (troe_n - .14 * (troe_c + logPr)); + troePr = (troe_c + logPr) * troePr_den; + troe = 1.0 / (1.0 + troePr * troePr); + F = exp(M_LN10 * logFcent * troe); + dlogFcentdT = log10e / Fcent * + (-Fcent1 / 1e-30 - Fcent2 / 1e+30 + Fcent3 * 1e+30 * invT2); + dlogFdcn_fac = 2.0 * logFcent * troe * troe * troePr * troePr_den; + dlogFdc = -troe_n * dlogFdcn_fac * troePr_den; + dlogFdn = dlogFdcn_fac * troePr; + dlogFdlogPr = dlogFdc; + dlogFdT = dlogFcentdT * (troe - 0.67 * dlogFdc - 1.27 * dlogFdn) + + dlogFdlogPr * dlogPrdT; + // reverse + phi_r = sc[8] * sc[28]; + Kc = refC * exp(-g_RT[8] + g_RT[20] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[20]) + (h_RT[8] + h_RT[28]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + Corr = fPr * F; + q = Corr * q_nocor; + dlnCorrdT = ln10 * (dlogfPrdT + dlogFdT); + dqdT = Corr * (dlnkfdT * k_f * phi_f - dkrdT * phi_r) + dlnCorrdT * q; + // update wdot + wdot[8] += q; // OH + wdot[20] -= q; // NH2OH + wdot[28] += q; // NH2 + // for convenience + k_f *= Corr; + k_r *= Corr; + dcdc_fac = 0.0; + dqdc[0] = dcdc_fac; + dqdc[1] = dcdc_fac; + dqdc[2] = dcdc_fac; + dqdc[3] = dcdc_fac; + dqdc[4] = dcdc_fac; + dqdc[5] = dcdc_fac; + dqdc[6] = dcdc_fac; + dqdc[7] = dcdc_fac; + dqdc[8] = dcdc_fac - k_r * sc[28]; + dqdc[9] = dcdc_fac; + dqdc[10] = dcdc_fac; + dqdc[11] = dcdc_fac; + dqdc[12] = dcdc_fac; + dqdc[13] = dcdc_fac; + dqdc[14] = dcdc_fac; + dqdc[15] = dcdc_fac; + dqdc[16] = dcdc_fac; + dqdc[17] = dcdc_fac; + dqdc[18] = dcdc_fac; + dqdc[19] = dcdc_fac; + dqdc[20] = dcdc_fac + k_f; + dqdc[21] = dcdc_fac; + dqdc[22] = dcdc_fac; + dqdc[23] = dcdc_fac; + dqdc[24] = dcdc_fac; + dqdc[25] = dcdc_fac; + dqdc[26] = dcdc_fac; + dqdc[27] = dcdc_fac; + dqdc[28] = dcdc_fac - k_r * sc[8]; + dqdc[29] = dcdc_fac; + dqdc[30] = dcdc_fac; + for (int k = 0; k < 31; k++) { + J[32 * k + 8] += dqdc[k]; + J[32 * k + 20] -= dqdc[k]; + J[32 * k + 28] += dqdc[k]; + } + J[1000] += dqdT; // dwdot[OH]/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 140: NO + O (+M) <=> NO2 (+M) + // a third-body and pressure-fall-off reaction + // 3-body correction factor + alpha = mixture + (1.7 - 1) * sc[1] + (1.5 - 1) * sc[5] + (10 - 1) * sc[7]; + // forward + phi_f = sc[6] * sc[11]; + k_f = 1300000000 * exp(-0.75 * logT); + dlnkfdT = -0.75 * invT; + // pressure-fall-off + k_0 = 4.72e+24 * exp(-2.87 * logT - (779.985831997315) * invT); + Pr = 1e-12 * alpha / k_f * k_0; + fPr = Pr / (1.0 + Pr); + dlnk0dT = -2.87 * invT + (779.985831997315) * invT2; + dlogPrdT = log10e * (dlnk0dT - dlnkfdT); + dlogfPrdT = dlogPrdT / (1.0 + Pr); + // Troe form + logPr = log10(Pr); + Fcent1 = (1. - 0.75) * exp(-T / 1000); + Fcent2 = 0.75 * exp(-T / 100000); + Fcent3 = exp(-1e+30 * invT); + Fcent = Fcent1 + Fcent2 + Fcent3; + logFcent = log10(Fcent); + troe_c = -.4 - .67 * logFcent; + troe_n = .75 - 1.27 * logFcent; + troePr_den = 1.0 / (troe_n - .14 * (troe_c + logPr)); + troePr = (troe_c + logPr) * troePr_den; + troe = 1.0 / (1.0 + troePr * troePr); + F = exp(M_LN10 * logFcent * troe); + dlogFcentdT = log10e / Fcent * + (-Fcent1 / 1000 - Fcent2 / 100000 + Fcent3 * 1e+30 * invT2); + dlogFdcn_fac = 2.0 * logFcent * troe * troe * troePr * troePr_den; + dlogFdc = -troe_n * dlogFdcn_fac * troePr_den; + dlogFdn = dlogFdcn_fac * troePr; + dlogFdlogPr = dlogFdc; + dlogFdT = dlogFcentdT * (troe - 0.67 * dlogFdc - 1.27 * dlogFdn) + + dlogFdlogPr * dlogPrdT; + // reverse + phi_r = sc[13]; + Kc = refCinv * exp(g_RT[6] + g_RT[11] - g_RT[13]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[11]) + (h_RT[13]) + 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + Corr = fPr * F; + q = Corr * q_nocor; + dlnCorrdT = ln10 * (dlogfPrdT + dlogFdT); + dqdT = Corr * (dlnkfdT * k_f * phi_f - dkrdT * phi_r) + dlnCorrdT * q; + // update wdot + wdot[6] -= q; // O + wdot[11] -= q; // NO + wdot[13] += q; // NO2 + // for convenience + k_f *= Corr; + k_r *= Corr; + dcdc_fac = 0.0; + dqdc[0] = dcdc_fac; + dqdc[1] = 1.7 * dcdc_fac; + dqdc[2] = dcdc_fac; + dqdc[3] = dcdc_fac; + dqdc[4] = dcdc_fac; + dqdc[5] = 1.5 * dcdc_fac; + dqdc[6] = dcdc_fac + k_f * sc[11]; + dqdc[7] = 10 * dcdc_fac; + dqdc[8] = dcdc_fac; + dqdc[9] = dcdc_fac; + dqdc[10] = dcdc_fac; + dqdc[11] = dcdc_fac + k_f * sc[6]; + dqdc[12] = dcdc_fac; + dqdc[13] = dcdc_fac - k_r; + dqdc[14] = dcdc_fac; + dqdc[15] = dcdc_fac; + dqdc[16] = dcdc_fac; + dqdc[17] = dcdc_fac; + dqdc[18] = dcdc_fac; + dqdc[19] = dcdc_fac; + dqdc[20] = dcdc_fac; + dqdc[21] = dcdc_fac; + dqdc[22] = dcdc_fac; + dqdc[23] = dcdc_fac; + dqdc[24] = dcdc_fac; + dqdc[25] = dcdc_fac; + dqdc[26] = dcdc_fac; + dqdc[27] = dcdc_fac; + dqdc[28] = dcdc_fac; + dqdc[29] = dcdc_fac; + dqdc[30] = dcdc_fac; + for (int k = 0; k < 31; k++) { + J[32 * k + 6] -= dqdc[k]; + J[32 * k + 11] -= dqdc[k]; + J[32 * k + 13] += dqdc[k]; + } + J[998] -= dqdT; // dwdot[O]/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + + // reaction 182: NO2 + O (+M) <=> NO3 (+M) + // a third-body and pressure-fall-off reaction + // 3-body correction factor + alpha = mixture; + // forward + phi_f = sc[6] * sc[13]; + k_f = 3500000 * exp(0.24 * logT); + dlnkfdT = 0.24 * invT; + // pressure-fall-off + k_0 = 2.5e+20 * exp(-1.5 * logT); + Pr = 1e-12 * alpha / k_f * k_0; + fPr = Pr / (1.0 + Pr); + dlnk0dT = -1.5 * invT; + dlogPrdT = log10e * (dlnk0dT - dlnkfdT); + dlogfPrdT = dlogPrdT / (1.0 + Pr); + // Troe form + logPr = log10(Pr); + Fcent1 = (1. - 0.71) * exp(-T / 1e-30); + Fcent2 = 0.71 * exp(-T / 1700); + Fcent3 = exp(-1e+30 * invT); + Fcent = Fcent1 + Fcent2 + Fcent3; + logFcent = log10(Fcent); + troe_c = -.4 - .67 * logFcent; + troe_n = .75 - 1.27 * logFcent; + troePr_den = 1.0 / (troe_n - .14 * (troe_c + logPr)); + troePr = (troe_c + logPr) * troePr_den; + troe = 1.0 / (1.0 + troePr * troePr); + F = exp(M_LN10 * logFcent * troe); + dlogFcentdT = + log10e / Fcent * (-Fcent1 / 1e-30 - Fcent2 / 1700 + Fcent3 * 1e+30 * invT2); + dlogFdcn_fac = 2.0 * logFcent * troe * troe * troePr * troePr_den; + dlogFdc = -troe_n * dlogFdcn_fac * troePr_den; + dlogFdn = dlogFdcn_fac * troePr; + dlogFdlogPr = dlogFdc; + dlogFdT = dlogFcentdT * (troe - 0.67 * dlogFdc - 1.27 * dlogFdn) + + dlogFdlogPr * dlogPrdT; + // reverse + phi_r = sc[25]; + Kc = refCinv * exp(g_RT[6] + g_RT[13] - g_RT[25]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[13]) + (h_RT[25]) + 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + Corr = fPr * F; + q = Corr * q_nocor; + dlnCorrdT = ln10 * (dlogfPrdT + dlogFdT); + dqdT = Corr * (dlnkfdT * k_f * phi_f - dkrdT * phi_r) + dlnCorrdT * q; + // update wdot + wdot[6] -= q; // O + wdot[13] -= q; // NO2 + wdot[25] += q; // NO3 + // for convenience + k_f *= Corr; + k_r *= Corr; + dcdc_fac = 0.0; + dqdc[0] = dcdc_fac; + dqdc[1] = dcdc_fac; + dqdc[2] = dcdc_fac; + dqdc[3] = dcdc_fac; + dqdc[4] = dcdc_fac; + dqdc[5] = dcdc_fac; + dqdc[6] = dcdc_fac + k_f * sc[13]; + dqdc[7] = dcdc_fac; + dqdc[8] = dcdc_fac; + dqdc[9] = dcdc_fac; + dqdc[10] = dcdc_fac; + dqdc[11] = dcdc_fac; + dqdc[12] = dcdc_fac; + dqdc[13] = dcdc_fac + k_f * sc[6]; + dqdc[14] = dcdc_fac; + dqdc[15] = dcdc_fac; + dqdc[16] = dcdc_fac; + dqdc[17] = dcdc_fac; + dqdc[18] = dcdc_fac; + dqdc[19] = dcdc_fac; + dqdc[20] = dcdc_fac; + dqdc[21] = dcdc_fac; + dqdc[22] = dcdc_fac; + dqdc[23] = dcdc_fac; + dqdc[24] = dcdc_fac; + dqdc[25] = dcdc_fac - k_r; + dqdc[26] = dcdc_fac; + dqdc[27] = dcdc_fac; + dqdc[28] = dcdc_fac; + dqdc[29] = dcdc_fac; + dqdc[30] = dcdc_fac; + for (int k = 0; k < 31; k++) { + J[32 * k + 6] -= dqdc[k]; + J[32 * k + 13] -= dqdc[k]; + J[32 * k + 25] += dqdc[k]; + } + J[998] -= dqdT; // dwdot[O]/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1017] += dqdT; // dwdot[NO3]/dT + + // reaction 201: NO2 + OH (+M) <=> HONO2 (+M) + // a third-body and pressure-fall-off reaction + // 3-body correction factor + alpha = mixture; + // forward + phi_f = sc[8] * sc[13]; + k_f = 30000000; + dlnkfdT = 0.0; + // pressure-fall-off + k_0 = 2.938e+25 * exp(-3 * logT); + Pr = 1e-12 * alpha / k_f * k_0; + fPr = Pr / (1.0 + Pr); + dlnk0dT = -3 * invT; + dlogPrdT = log10e * (dlnk0dT - dlnkfdT); + dlogfPrdT = dlogPrdT / (1.0 + Pr); + // Troe form + logPr = log10(Pr); + Fcent1 = (1. - 0.4) * exp(-T / 1e-30); + Fcent2 = 0.4 * exp(-T / 1e+30); + Fcent3 = exp(-1e+30 * invT); + Fcent = Fcent1 + Fcent2 + Fcent3; + logFcent = log10(Fcent); + troe_c = -.4 - .67 * logFcent; + troe_n = .75 - 1.27 * logFcent; + troePr_den = 1.0 / (troe_n - .14 * (troe_c + logPr)); + troePr = (troe_c + logPr) * troePr_den; + troe = 1.0 / (1.0 + troePr * troePr); + F = exp(M_LN10 * logFcent * troe); + dlogFcentdT = log10e / Fcent * + (-Fcent1 / 1e-30 - Fcent2 / 1e+30 + Fcent3 * 1e+30 * invT2); + dlogFdcn_fac = 2.0 * logFcent * troe * troe * troePr * troePr_den; + dlogFdc = -troe_n * dlogFdcn_fac * troePr_den; + dlogFdn = dlogFdcn_fac * troePr; + dlogFdlogPr = dlogFdc; + dlogFdT = dlogFcentdT * (troe - 0.67 * dlogFdc - 1.27 * dlogFdn) + + dlogFdlogPr * dlogPrdT; + // reverse + phi_r = sc[17]; + Kc = refCinv * exp(g_RT[8] + g_RT[13] - g_RT[17]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[13]) + (h_RT[17]) + 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + Corr = fPr * F; + q = Corr * q_nocor; + dlnCorrdT = ln10 * (dlogfPrdT + dlogFdT); + dqdT = Corr * (dlnkfdT * k_f * phi_f - dkrdT * phi_r) + dlnCorrdT * q; + // update wdot + wdot[8] -= q; // OH + wdot[13] -= q; // NO2 + wdot[17] += q; // HONO2 + // for convenience + k_f *= Corr; + k_r *= Corr; + dcdc_fac = 0.0; + dqdc[0] = dcdc_fac; + dqdc[1] = dcdc_fac; + dqdc[2] = dcdc_fac; + dqdc[3] = dcdc_fac; + dqdc[4] = dcdc_fac; + dqdc[5] = dcdc_fac; + dqdc[6] = dcdc_fac; + dqdc[7] = dcdc_fac; + dqdc[8] = dcdc_fac + k_f * sc[13]; + dqdc[9] = dcdc_fac; + dqdc[10] = dcdc_fac; + dqdc[11] = dcdc_fac; + dqdc[12] = dcdc_fac; + dqdc[13] = dcdc_fac + k_f * sc[8]; + dqdc[14] = dcdc_fac; + dqdc[15] = dcdc_fac; + dqdc[16] = dcdc_fac; + dqdc[17] = dcdc_fac - k_r; + dqdc[18] = dcdc_fac; + dqdc[19] = dcdc_fac; + dqdc[20] = dcdc_fac; + dqdc[21] = dcdc_fac; + dqdc[22] = dcdc_fac; + dqdc[23] = dcdc_fac; + dqdc[24] = dcdc_fac; + dqdc[25] = dcdc_fac; + dqdc[26] = dcdc_fac; + dqdc[27] = dcdc_fac; + dqdc[28] = dcdc_fac; + dqdc[29] = dcdc_fac; + dqdc[30] = dcdc_fac; + for (int k = 0; k < 31; k++) { + J[32 * k + 8] -= dqdc[k]; + J[32 * k + 13] -= dqdc[k]; + J[32 * k + 17] += dqdc[k]; + } + J[1000] -= dqdT; // dwdot[OH]/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1009] += dqdT; // dwdot[HONO2]/dT + + // reaction 187: N2O (+M) <=> N2 + O (+M) + // a third-body and pressure-fall-off reaction + // 3-body correction factor + alpha = mixture + (1.7 - 1) * sc[1] + (1.4 - 1) * sc[5] + (12 - 1) * sc[7]; + // forward + phi_f = sc[12]; + k_f = 99000000000 * exp(-(29136.7481667591) * invT); + dlnkfdT = (29136.7481667591) * invT2; + // pressure-fall-off + k_0 = 602000000000000 * exp(-(28906.7781504863) * invT); + Pr = 1e-6 * alpha / k_f * k_0; + fPr = Pr / (1.0 + Pr); + dlnk0dT = (28906.7781504863) * invT2; + dlogPrdT = log10e * (dlnk0dT - dlnkfdT); + dlogfPrdT = dlogPrdT / (1.0 + Pr); + // Lindemann form + F = 1.0; + // dlogFdlogPr is 0.0 and unused + dlogFdT = 0.0; + // reverse + phi_r = sc[1] * sc[6]; + Kc = refC * exp(-g_RT[1] - g_RT[6] + g_RT[12]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[12]) + (h_RT[1] + h_RT[6]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + Corr = fPr * F; + q = Corr * q_nocor; + dlnCorrdT = ln10 * (dlogfPrdT + dlogFdT); + dqdT = Corr * (dlnkfdT * k_f * phi_f - dkrdT * phi_r) + dlnCorrdT * q; + // update wdot + wdot[1] += q; // N2 + wdot[6] += q; // O + wdot[12] -= q; // N2O + // for convenience + k_f *= Corr; + k_r *= Corr; + dcdc_fac = 0.0; + dqdc[0] = dcdc_fac; + dqdc[1] = 1.7 * dcdc_fac - k_r * sc[6]; + dqdc[2] = dcdc_fac; + dqdc[3] = dcdc_fac; + dqdc[4] = dcdc_fac; + dqdc[5] = 1.4 * dcdc_fac; + dqdc[6] = dcdc_fac - k_r * sc[1]; + dqdc[7] = 12 * dcdc_fac; + dqdc[8] = dcdc_fac; + dqdc[9] = dcdc_fac; + dqdc[10] = dcdc_fac; + dqdc[11] = dcdc_fac; + dqdc[12] = dcdc_fac + k_f; + dqdc[13] = dcdc_fac; + dqdc[14] = dcdc_fac; + dqdc[15] = dcdc_fac; + dqdc[16] = dcdc_fac; + dqdc[17] = dcdc_fac; + dqdc[18] = dcdc_fac; + dqdc[19] = dcdc_fac; + dqdc[20] = dcdc_fac; + dqdc[21] = dcdc_fac; + dqdc[22] = dcdc_fac; + dqdc[23] = dcdc_fac; + dqdc[24] = dcdc_fac; + dqdc[25] = dcdc_fac; + dqdc[26] = dcdc_fac; + dqdc[27] = dcdc_fac; + dqdc[28] = dcdc_fac; + dqdc[29] = dcdc_fac; + dqdc[30] = dcdc_fac; + for (int k = 0; k < 31; k++) { + J[32 * k + 1] += dqdc[k]; + J[32 * k + 6] += dqdc[k]; + J[32 * k + 12] -= dqdc[k]; + } + J[993] += dqdT; // dwdot[N2]/dT + J[998] += dqdT; // dwdot[O]/dT + J[1004] -= dqdT; // dwdot[N2O]/dT + + // reaction 0: H2 + M <=> 2 H + M + // a third-body and non-pressure-fall-off reaction + // 3-body correction factor + alpha = mixture + (0.83 - 1) * sc[2] + (2.5 - 1) * sc[3] + (12 - 1) * sc[7]; + // forward + phi_f = sc[3]; + k_f = 45770000000000 * exp(-1.4 * logT - (52535.8199100127) * invT); + dlnkfdT = -1.4 * invT + (52535.8199100127) * invT2; + // reverse + phi_r = (sc[4] * sc[4]); + Kc = refC * exp(g_RT[3] - 2.000000 * g_RT[4]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[3]) + (2.000000 * h_RT[4]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + q = alpha * q_nocor; + dqdT = alpha * (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] -= q; // H2 + wdot[4] += 2 * q; // H + // for convenience + k_f *= alpha; + k_r *= alpha; + dqdc[0] = q_nocor; + dqdc[1] = q_nocor; + dqdc[2] = 0.83 * q_nocor; + dqdc[3] = 2.5 * q_nocor + k_f; + dqdc[4] = q_nocor - k_r * 2.000000 * sc[4]; + dqdc[5] = q_nocor; + dqdc[6] = q_nocor; + dqdc[7] = 12 * q_nocor; + dqdc[8] = q_nocor; + dqdc[9] = q_nocor; + dqdc[10] = q_nocor; + dqdc[11] = q_nocor; + dqdc[12] = q_nocor; + dqdc[13] = q_nocor; + dqdc[14] = q_nocor; + dqdc[15] = q_nocor; + dqdc[16] = q_nocor; + dqdc[17] = q_nocor; + dqdc[18] = q_nocor; + dqdc[19] = q_nocor; + dqdc[20] = q_nocor; + dqdc[21] = q_nocor; + dqdc[22] = q_nocor; + dqdc[23] = q_nocor; + dqdc[24] = q_nocor; + dqdc[25] = q_nocor; + dqdc[26] = q_nocor; + dqdc[27] = q_nocor; + dqdc[28] = q_nocor; + dqdc[29] = q_nocor; + dqdc[30] = q_nocor; + for (int k = 0; k < 31; k++) { + J[32 * k + 3] -= dqdc[k]; + J[32 * k + 4] += 2 * dqdc[k]; + } + J[995] -= dqdT; // dwdot[H2]/dT + J[996] += 2 * dqdT; // dwdot[H]/dT + + // reaction 3: 2 O + M <=> O2 + M + // a third-body and non-pressure-fall-off reaction + // 3-body correction factor + alpha = mixture + (0.83 - 1) * sc[0] + (0.83 - 1) * sc[2] + + (2.5 - 1) * sc[3] + (12 - 1) * sc[7]; + // forward + phi_f = (sc[6] * sc[6]); + k_f = 6165 * exp(-0.5 * logT); + dlnkfdT = -0.5 * invT; + // reverse + phi_r = sc[5]; + Kc = refCinv * exp(-g_RT[5] + 2.000000 * g_RT[6]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(2.000000 * h_RT[6]) + (h_RT[5]) + 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + q = alpha * q_nocor; + dqdT = alpha * (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[6] -= 2 * q; // O + // for convenience + k_f *= alpha; + k_r *= alpha; + dqdc[0] = 0.83 * q_nocor; + dqdc[1] = q_nocor; + dqdc[2] = 0.83 * q_nocor; + dqdc[3] = 2.5 * q_nocor; + dqdc[4] = q_nocor; + dqdc[5] = q_nocor - k_r; + dqdc[6] = q_nocor + k_f * 2.000000 * sc[6]; + dqdc[7] = 12 * q_nocor; + dqdc[8] = q_nocor; + dqdc[9] = q_nocor; + dqdc[10] = q_nocor; + dqdc[11] = q_nocor; + dqdc[12] = q_nocor; + dqdc[13] = q_nocor; + dqdc[14] = q_nocor; + dqdc[15] = q_nocor; + dqdc[16] = q_nocor; + dqdc[17] = q_nocor; + dqdc[18] = q_nocor; + dqdc[19] = q_nocor; + dqdc[20] = q_nocor; + dqdc[21] = q_nocor; + dqdc[22] = q_nocor; + dqdc[23] = q_nocor; + dqdc[24] = q_nocor; + dqdc[25] = q_nocor; + dqdc[26] = q_nocor; + dqdc[27] = q_nocor; + dqdc[28] = q_nocor; + dqdc[29] = q_nocor; + dqdc[30] = q_nocor; + for (int k = 0; k < 31; k++) { + J[32 * k + 5] += dqdc[k]; + J[32 * k + 6] += -2 * dqdc[k]; + } + J[997] += dqdT; // dwdot[O2]/dT + J[998] += -2 * dqdT; // dwdot[O]/dT + + // reaction 5: H + OH + M <=> H2O + M + // a third-body and non-pressure-fall-off reaction + // 3-body correction factor + alpha = + mixture + (0.38 - 1) * sc[0] + (0.73 - 1) * sc[3] + (3.65 - 1) * sc[7]; + // forward + phi_f = sc[4] * sc[8]; + k_f = 35000000000 * exp(-2 * logT); + dlnkfdT = -2 * invT; + // reverse + phi_r = sc[7]; + Kc = refCinv * exp(g_RT[4] - g_RT[7] + g_RT[8]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[8]) + (h_RT[7]) + 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + q = alpha * q_nocor; + dqdT = alpha * (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] -= q; // H + wdot[7] += q; // H2O + wdot[8] -= q; // OH + // for convenience + k_f *= alpha; + k_r *= alpha; + dqdc[0] = 0.38 * q_nocor; + dqdc[1] = q_nocor; + dqdc[2] = q_nocor; + dqdc[3] = 0.73 * q_nocor; + dqdc[4] = q_nocor + k_f * sc[8]; + dqdc[5] = q_nocor; + dqdc[6] = q_nocor; + dqdc[7] = 3.65 * q_nocor - k_r; + dqdc[8] = q_nocor + k_f * sc[4]; + dqdc[9] = q_nocor; + dqdc[10] = q_nocor; + dqdc[11] = q_nocor; + dqdc[12] = q_nocor; + dqdc[13] = q_nocor; + dqdc[14] = q_nocor; + dqdc[15] = q_nocor; + dqdc[16] = q_nocor; + dqdc[17] = q_nocor; + dqdc[18] = q_nocor; + dqdc[19] = q_nocor; + dqdc[20] = q_nocor; + dqdc[21] = q_nocor; + dqdc[22] = q_nocor; + dqdc[23] = q_nocor; + dqdc[24] = q_nocor; + dqdc[25] = q_nocor; + dqdc[26] = q_nocor; + dqdc[27] = q_nocor; + dqdc[28] = q_nocor; + dqdc[29] = q_nocor; + dqdc[30] = q_nocor; + for (int k = 0; k < 31; k++) { + J[32 * k + 4] -= dqdc[k]; + J[32 * k + 7] += dqdc[k]; + J[32 * k + 8] -= dqdc[k]; + } + J[996] -= dqdT; // dwdot[H]/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + + // reaction 7: H + O + M <=> OH + M + // a third-body and non-pressure-fall-off reaction + // 3-body correction factor + alpha = mixture + (0.75 - 1) * sc[0] + (0.75 - 1) * sc[2] + + (2.5 - 1) * sc[3] + (12 - 1) * sc[7]; + // forward + phi_f = sc[4] * sc[6]; + k_f = 4714000 * exp(-1 * logT); + dlnkfdT = -1 * invT; + // reverse + phi_r = sc[8]; + Kc = refCinv * exp(g_RT[4] + g_RT[6] - g_RT[8]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[6]) + (h_RT[8]) + 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + q = alpha * q_nocor; + dqdT = alpha * (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] -= q; // H + wdot[6] -= q; // O + wdot[8] += q; // OH + // for convenience + k_f *= alpha; + k_r *= alpha; + dqdc[0] = 0.75 * q_nocor; + dqdc[1] = q_nocor; + dqdc[2] = 0.75 * q_nocor; + dqdc[3] = 2.5 * q_nocor; + dqdc[4] = q_nocor + k_f * sc[6]; + dqdc[5] = q_nocor; + dqdc[6] = q_nocor + k_f * sc[4]; + dqdc[7] = 12 * q_nocor; + dqdc[8] = q_nocor - k_r; + dqdc[9] = q_nocor; + dqdc[10] = q_nocor; + dqdc[11] = q_nocor; + dqdc[12] = q_nocor; + dqdc[13] = q_nocor; + dqdc[14] = q_nocor; + dqdc[15] = q_nocor; + dqdc[16] = q_nocor; + dqdc[17] = q_nocor; + dqdc[18] = q_nocor; + dqdc[19] = q_nocor; + dqdc[20] = q_nocor; + dqdc[21] = q_nocor; + dqdc[22] = q_nocor; + dqdc[23] = q_nocor; + dqdc[24] = q_nocor; + dqdc[25] = q_nocor; + dqdc[26] = q_nocor; + dqdc[27] = q_nocor; + dqdc[28] = q_nocor; + dqdc[29] = q_nocor; + dqdc[30] = q_nocor; + for (int k = 0; k < 31; k++) { + J[32 * k + 4] -= dqdc[k]; + J[32 * k + 6] -= dqdc[k]; + J[32 * k + 8] += dqdc[k]; + } + J[996] -= dqdT; // dwdot[H]/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + + // reaction 22: O + OH + M <=> HO2 + M + // a third-body and non-pressure-fall-off reaction + // 3-body correction factor + alpha = mixture; + // forward + phi_f = sc[6] * sc[8]; + k_f = 10000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[10]; + Kc = refCinv * exp(g_RT[6] + g_RT[8] - g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[8]) + (h_RT[10]) + 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + q = alpha * q_nocor; + dqdT = alpha * (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] -= q; // OH + wdot[10] += q; // HO2 + // for convenience + k_f *= alpha; + k_r *= alpha; + dqdc[0] = q_nocor; + dqdc[1] = q_nocor; + dqdc[2] = q_nocor; + dqdc[3] = q_nocor; + dqdc[4] = q_nocor; + dqdc[5] = q_nocor; + dqdc[6] = q_nocor + k_f * sc[8]; + dqdc[7] = q_nocor; + dqdc[8] = q_nocor + k_f * sc[6]; + dqdc[9] = q_nocor; + dqdc[10] = q_nocor - k_r; + dqdc[11] = q_nocor; + dqdc[12] = q_nocor; + dqdc[13] = q_nocor; + dqdc[14] = q_nocor; + dqdc[15] = q_nocor; + dqdc[16] = q_nocor; + dqdc[17] = q_nocor; + dqdc[18] = q_nocor; + dqdc[19] = q_nocor; + dqdc[20] = q_nocor; + dqdc[21] = q_nocor; + dqdc[22] = q_nocor; + dqdc[23] = q_nocor; + dqdc[24] = q_nocor; + dqdc[25] = q_nocor; + dqdc[26] = q_nocor; + dqdc[27] = q_nocor; + dqdc[28] = q_nocor; + dqdc[29] = q_nocor; + dqdc[30] = q_nocor; + for (int k = 0; k < 31; k++) { + J[32 * k + 6] -= dqdc[k]; + J[32 * k + 8] -= dqdc[k]; + J[32 * k + 10] += dqdc[k]; + } + J[998] -= dqdT; // dwdot[O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + + // reaction 60: HNOH + M <=> H + HNO + M + // a third-body and non-pressure-fall-off reaction + // 3-body correction factor + alpha = mixture; + // forward + phi_f = sc[21]; + k_f = 2e+18 * exp(-2.84 * logT - (29656.5709825354) * invT); + dlnkfdT = -2.84 * invT + (29656.5709825354) * invT2; + // reverse + phi_r = sc[4] * sc[14]; + Kc = refC * exp(-g_RT[4] - g_RT[14] + g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[21]) + (h_RT[4] + h_RT[14]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + q = alpha * q_nocor; + dqdT = alpha * (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[14] += q; // HNO + wdot[21] -= q; // HNOH + // for convenience + k_f *= alpha; + k_r *= alpha; + dqdc[0] = q_nocor; + dqdc[1] = q_nocor; + dqdc[2] = q_nocor; + dqdc[3] = q_nocor; + dqdc[4] = q_nocor - k_r * sc[14]; + dqdc[5] = q_nocor; + dqdc[6] = q_nocor; + dqdc[7] = q_nocor; + dqdc[8] = q_nocor; + dqdc[9] = q_nocor; + dqdc[10] = q_nocor; + dqdc[11] = q_nocor; + dqdc[12] = q_nocor; + dqdc[13] = q_nocor; + dqdc[14] = q_nocor - k_r * sc[4]; + dqdc[15] = q_nocor; + dqdc[16] = q_nocor; + dqdc[17] = q_nocor; + dqdc[18] = q_nocor; + dqdc[19] = q_nocor; + dqdc[20] = q_nocor; + dqdc[21] = q_nocor + k_f; + dqdc[22] = q_nocor; + dqdc[23] = q_nocor; + dqdc[24] = q_nocor; + dqdc[25] = q_nocor; + dqdc[26] = q_nocor; + dqdc[27] = q_nocor; + dqdc[28] = q_nocor; + dqdc[29] = q_nocor; + dqdc[30] = q_nocor; + for (int k = 0; k < 31; k++) { + J[32 * k + 4] += dqdc[k]; + J[32 * k + 14] += dqdc[k]; + J[32 * k + 21] -= dqdc[k]; + } + J[996] += dqdT; // dwdot[H]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + + // reaction 163: H2NO + M <=> H + HNO + M + // a third-body and non-pressure-fall-off reaction + // 3-body correction factor + alpha = mixture + (10 - 1) * sc[7]; + // forward + phi_f = sc[29]; + k_f = 2.8e+18 * exp(-2.83 * logT - (32696.4525389951) * invT); + dlnkfdT = -2.83 * invT + (32696.4525389951) * invT2; + // reverse + phi_r = sc[4] * sc[14]; + Kc = refC * exp(-g_RT[4] - g_RT[14] + g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[29]) + (h_RT[4] + h_RT[14]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + q = alpha * q_nocor; + dqdT = alpha * (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[14] += q; // HNO + wdot[29] -= q; // H2NO + // for convenience + k_f *= alpha; + k_r *= alpha; + dqdc[0] = q_nocor; + dqdc[1] = q_nocor; + dqdc[2] = q_nocor; + dqdc[3] = q_nocor; + dqdc[4] = q_nocor - k_r * sc[14]; + dqdc[5] = q_nocor; + dqdc[6] = q_nocor; + dqdc[7] = 10 * q_nocor; + dqdc[8] = q_nocor; + dqdc[9] = q_nocor; + dqdc[10] = q_nocor; + dqdc[11] = q_nocor; + dqdc[12] = q_nocor; + dqdc[13] = q_nocor; + dqdc[14] = q_nocor - k_r * sc[4]; + dqdc[15] = q_nocor; + dqdc[16] = q_nocor; + dqdc[17] = q_nocor; + dqdc[18] = q_nocor; + dqdc[19] = q_nocor; + dqdc[20] = q_nocor; + dqdc[21] = q_nocor; + dqdc[22] = q_nocor; + dqdc[23] = q_nocor; + dqdc[24] = q_nocor; + dqdc[25] = q_nocor; + dqdc[26] = q_nocor; + dqdc[27] = q_nocor; + dqdc[28] = q_nocor; + dqdc[29] = q_nocor + k_f; + dqdc[30] = q_nocor; + for (int k = 0; k < 31; k++) { + J[32 * k + 4] += dqdc[k]; + J[32 * k + 14] += dqdc[k]; + J[32 * k + 29] -= dqdc[k]; + } + J[996] += dqdT; // dwdot[H]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1021] -= dqdT; // dwdot[H2NO]/dT + + // reaction 177: NO3 + NO2 => NO + O2 + NO2 + // a third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[13] * sc[25]; + k_f = 57300 * exp(-(1409.00666425321) * invT); + dlnkfdT = (1409.00666425321) * invT2; + // rate of progress + q = k_f * phi_f; + dqdT = dlnkfdT * k_f * phi_f; + // update wdot + wdot[5] += q; // O2 + wdot[11] += q; // NO + wdot[25] -= q; // NO3 + // d()/d[NO2] + dqdci = +k_f * sc[25]; + J[421] += dqdci; // dwdot[O2]/d[NO2] + J[427] += dqdci; // dwdot[NO]/d[NO2] + J[441] -= dqdci; // dwdot[NO3]/d[NO2] + // d()/d[NO3] + dqdci = +k_f * sc[13]; + J[805] += dqdci; // dwdot[O2]/d[NO3] + J[811] += dqdci; // dwdot[NO]/d[NO3] + J[825] -= dqdci; // dwdot[NO3]/d[NO3] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1017] -= dqdT; // dwdot[NO3]/dT + + // reaction 1: H2 + O <=> H + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[3] * sc[6]; + k_f = 0.0508 * exp(2.67 * logT - (3166.2392612433) * invT); + dlnkfdT = 2.67 * invT + (3166.2392612433) * invT2; + // reverse + phi_r = sc[4] * sc[8]; + Kc = exp(g_RT[3] - g_RT[4] + g_RT[6] - g_RT[8]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[3] + h_RT[6]) + (h_RT[4] + h_RT[8])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] -= q; // H2 + wdot[4] += q; // H + wdot[6] -= q; // O + wdot[8] += q; // OH + // d()/d[H2] + dqdci = +k_f * sc[6]; + J[99] -= dqdci; // dwdot[H2]/d[H2] + J[100] += dqdci; // dwdot[H]/d[H2] + J[102] -= dqdci; // dwdot[O]/d[H2] + J[104] += dqdci; // dwdot[OH]/d[H2] + // d()/d[H] + dqdci = -k_r * sc[8]; + J[131] -= dqdci; // dwdot[H2]/d[H] + J[132] += dqdci; // dwdot[H]/d[H] + J[134] -= dqdci; // dwdot[O]/d[H] + J[136] += dqdci; // dwdot[OH]/d[H] + // d()/d[O] + dqdci = +k_f * sc[3]; + J[195] -= dqdci; // dwdot[H2]/d[O] + J[196] += dqdci; // dwdot[H]/d[O] + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[4]; + J[259] -= dqdci; // dwdot[H2]/d[OH] + J[260] += dqdci; // dwdot[H]/d[OH] + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + // d()/dT + J[995] -= dqdT; // dwdot[H2]/dT + J[996] += dqdT; // dwdot[H]/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + + // reaction 2: H2 + OH <=> H + H2O + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[3] * sc[8]; + k_f = 43800000 * exp(-(3517.48449397499) * invT); + dlnkfdT = (3517.48449397499) * invT2; + // reverse + phi_r = sc[4] * sc[7]; + Kc = exp(g_RT[3] - g_RT[4] - g_RT[7] + g_RT[8]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[3] + h_RT[8]) + (h_RT[4] + h_RT[7])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] -= q; // H2 + wdot[4] += q; // H + wdot[7] += q; // H2O + wdot[8] -= q; // OH + // d()/d[H2] + dqdci = +k_f * sc[8]; + J[99] -= dqdci; // dwdot[H2]/d[H2] + J[100] += dqdci; // dwdot[H]/d[H2] + J[103] += dqdci; // dwdot[H2O]/d[H2] + J[104] -= dqdci; // dwdot[OH]/d[H2] + // d()/d[H] + dqdci = -k_r * sc[7]; + J[131] -= dqdci; // dwdot[H2]/d[H] + J[132] += dqdci; // dwdot[H]/d[H] + J[135] += dqdci; // dwdot[H2O]/d[H] + J[136] -= dqdci; // dwdot[OH]/d[H] + // d()/d[H2O] + dqdci = -k_r * sc[4]; + J[227] -= dqdci; // dwdot[H2]/d[H2O] + J[228] += dqdci; // dwdot[H]/d[H2O] + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[3]; + J[259] -= dqdci; // dwdot[H2]/d[OH] + J[260] += dqdci; // dwdot[H]/d[OH] + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + // d()/dT + J[995] -= dqdT; // dwdot[H2]/dT + J[996] += dqdT; // dwdot[H]/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + + // reaction 4: H + O2 <=> O + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[5]; + k_f = 114000000 * exp(-(7692.16995349094) * invT); + dlnkfdT = (7692.16995349094) * invT2; + // reverse + phi_r = sc[6] * sc[8]; + Kc = exp(g_RT[4] + g_RT[5] - g_RT[6] - g_RT[8]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[5]) + (h_RT[6] + h_RT[8])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] -= q; // H + wdot[5] -= q; // O2 + wdot[6] += q; // O + wdot[8] += q; // OH + // d()/d[H] + dqdci = +k_f * sc[5]; + J[132] -= dqdci; // dwdot[H]/d[H] + J[133] -= dqdci; // dwdot[O2]/d[H] + J[134] += dqdci; // dwdot[O]/d[H] + J[136] += dqdci; // dwdot[OH]/d[H] + // d()/d[O2] + dqdci = +k_f * sc[4]; + J[164] -= dqdci; // dwdot[H]/d[O2] + J[165] -= dqdci; // dwdot[O2]/d[O2] + J[166] += dqdci; // dwdot[O]/d[O2] + J[168] += dqdci; // dwdot[OH]/d[O2] + // d()/d[O] + dqdci = -k_r * sc[8]; + J[196] -= dqdci; // dwdot[H]/d[O] + J[197] -= dqdci; // dwdot[O2]/d[O] + J[198] += dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[6]; + J[260] -= dqdci; // dwdot[H]/d[OH] + J[261] -= dqdci; // dwdot[O2]/d[OH] + J[262] += dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + // d()/dT + J[996] -= dqdT; // dwdot[H]/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[998] += dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + + // reaction 6: H2O + O <=> 2 OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[7]; + k_f = 67 * exp(1.704 * logT - (7541.60752708217) * invT); + dlnkfdT = 1.704 * invT + (7541.60752708217) * invT2; + // reverse + phi_r = (sc[8] * sc[8]); + Kc = exp(g_RT[6] + g_RT[7] - 2.000000 * g_RT[8]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[7]) + (2.000000 * h_RT[8])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[7] -= q; // H2O + wdot[8] += 2 * q; // OH + // d()/d[O] + dqdci = +k_f * sc[7]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[199] -= dqdci; // dwdot[H2O]/d[O] + J[200] += 2 * dqdci; // dwdot[OH]/d[O] + // d()/d[H2O] + dqdci = +k_f * sc[6]; + J[230] -= dqdci; // dwdot[O]/d[H2O] + J[231] -= dqdci; // dwdot[H2O]/d[H2O] + J[232] += 2 * dqdci; // dwdot[OH]/d[H2O] + // d()/d[OH] + dqdci = -k_r * 2.000000 * sc[8]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[263] -= dqdci; // dwdot[H2O]/d[OH] + J[264] += 2 * dqdci; // dwdot[OH]/d[OH] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[999] -= dqdT; // dwdot[H2O]/dT + J[1000] += 2 * dqdT; // dwdot[OH]/dT + + // reaction 9: H + H2O2 <=> H2O + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[9]; + k_f = 24100000 * exp(-(1997.77016324474) * invT); + dlnkfdT = (1997.77016324474) * invT2; + // reverse + phi_r = sc[7] * sc[8]; + Kc = exp(g_RT[4] - g_RT[7] - g_RT[8] + g_RT[9]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[9]) + (h_RT[7] + h_RT[8])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] -= q; // H + wdot[7] += q; // H2O + wdot[8] += q; // OH + wdot[9] -= q; // H2O2 + // d()/d[H] + dqdci = +k_f * sc[9]; + J[132] -= dqdci; // dwdot[H]/d[H] + J[135] += dqdci; // dwdot[H2O]/d[H] + J[136] += dqdci; // dwdot[OH]/d[H] + J[137] -= dqdci; // dwdot[H2O2]/d[H] + // d()/d[H2O] + dqdci = -k_r * sc[8]; + J[228] -= dqdci; // dwdot[H]/d[H2O] + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] += dqdci; // dwdot[OH]/d[H2O] + J[233] -= dqdci; // dwdot[H2O2]/d[H2O] + // d()/d[OH] + dqdci = -k_r * sc[7]; + J[260] -= dqdci; // dwdot[H]/d[OH] + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[265] -= dqdci; // dwdot[H2O2]/d[OH] + // d()/d[H2O2] + dqdci = +k_f * sc[4]; + J[292] -= dqdci; // dwdot[H]/d[H2O2] + J[295] += dqdci; // dwdot[H2O]/d[H2O2] + J[296] += dqdci; // dwdot[OH]/d[H2O2] + J[297] -= dqdci; // dwdot[H2O2]/d[H2O2] + // d()/dT + J[996] -= dqdT; // dwdot[H]/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1001] -= dqdT; // dwdot[H2O2]/dT + + // reaction 10: H + H2O2 <=> H2 + HO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[9]; + k_f = 21500 * exp(1 * logT - (3019.29999482832) * invT); + dlnkfdT = 1 * invT + (3019.29999482832) * invT2; + // reverse + phi_r = sc[3] * sc[10]; + Kc = exp(-g_RT[3] + g_RT[4] + g_RT[9] - g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[9]) + (h_RT[3] + h_RT[10])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[9] -= q; // H2O2 + wdot[10] += q; // HO2 + // d()/d[H2] + dqdci = -k_r * sc[10]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[105] -= dqdci; // dwdot[H2O2]/d[H2] + J[106] += dqdci; // dwdot[HO2]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[9]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[137] -= dqdci; // dwdot[H2O2]/d[H] + J[138] += dqdci; // dwdot[HO2]/d[H] + // d()/d[H2O2] + dqdci = +k_f * sc[4]; + J[291] += dqdci; // dwdot[H2]/d[H2O2] + J[292] -= dqdci; // dwdot[H]/d[H2O2] + J[297] -= dqdci; // dwdot[H2O2]/d[H2O2] + J[298] += dqdci; // dwdot[HO2]/d[H2O2] + // d()/d[HO2] + dqdci = -k_r * sc[3]; + J[323] += dqdci; // dwdot[H2]/d[HO2] + J[324] -= dqdci; // dwdot[H]/d[HO2] + J[329] -= dqdci; // dwdot[H2O2]/d[HO2] + J[330] += dqdci; // dwdot[HO2]/d[HO2] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1001] -= dqdT; // dwdot[H2O2]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + + // reaction 11: H2O2 + O <=> HO2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[9]; + k_f = 9.55 * exp(2 * logT - (1997.77016324474) * invT); + dlnkfdT = 2 * invT + (1997.77016324474) * invT2; + // reverse + phi_r = sc[8] * sc[10]; + Kc = exp(g_RT[6] - g_RT[8] + g_RT[9] - g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[9]) + (h_RT[8] + h_RT[10])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[9] -= q; // H2O2 + wdot[10] += q; // HO2 + // d()/d[O] + dqdci = +k_f * sc[9]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[201] -= dqdci; // dwdot[H2O2]/d[O] + J[202] += dqdci; // dwdot[HO2]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[10]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[265] -= dqdci; // dwdot[H2O2]/d[OH] + J[266] += dqdci; // dwdot[HO2]/d[OH] + // d()/d[H2O2] + dqdci = +k_f * sc[6]; + J[294] -= dqdci; // dwdot[O]/d[H2O2] + J[296] += dqdci; // dwdot[OH]/d[H2O2] + J[297] -= dqdci; // dwdot[H2O2]/d[H2O2] + J[298] += dqdci; // dwdot[HO2]/d[H2O2] + // d()/d[HO2] + dqdci = -k_r * sc[8]; + J[326] -= dqdci; // dwdot[O]/d[HO2] + J[328] += dqdci; // dwdot[OH]/d[HO2] + J[329] -= dqdci; // dwdot[H2O2]/d[HO2] + J[330] += dqdci; // dwdot[HO2]/d[HO2] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1001] -= dqdT; // dwdot[H2O2]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + + // reaction 12: H2O2 + OH <=> H2O + HO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[9]; + k_f = 1740000 * exp(-(160.022899725901) * invT); + dlnkfdT = (160.022899725901) * invT2; + // reverse + phi_r = sc[7] * sc[10]; + Kc = exp(-g_RT[7] + g_RT[8] + g_RT[9] - g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[9]) + (h_RT[7] + h_RT[10])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[9] -= q; // H2O2 + wdot[10] += q; // HO2 + // d()/d[H2O] + dqdci = -k_r * sc[10]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[233] -= dqdci; // dwdot[H2O2]/d[H2O] + J[234] += dqdci; // dwdot[HO2]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[9]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[265] -= dqdci; // dwdot[H2O2]/d[OH] + J[266] += dqdci; // dwdot[HO2]/d[OH] + // d()/d[H2O2] + dqdci = +k_f * sc[8]; + J[295] += dqdci; // dwdot[H2O]/d[H2O2] + J[296] -= dqdci; // dwdot[OH]/d[H2O2] + J[297] -= dqdci; // dwdot[H2O2]/d[H2O2] + J[298] += dqdci; // dwdot[HO2]/d[H2O2] + // d()/d[HO2] + dqdci = -k_r * sc[7]; + J[327] += dqdci; // dwdot[H2O]/d[HO2] + J[328] -= dqdci; // dwdot[OH]/d[HO2] + J[329] -= dqdci; // dwdot[H2O2]/d[HO2] + J[330] += dqdci; // dwdot[HO2]/d[HO2] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1001] -= dqdT; // dwdot[H2O2]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + + // reaction 13: H2O2 + OH <=> H2O + HO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[9]; + k_f = 75900000 * exp(-(3657.88194373451) * invT); + dlnkfdT = (3657.88194373451) * invT2; + // reverse + phi_r = sc[7] * sc[10]; + Kc = exp(-g_RT[7] + g_RT[8] + g_RT[9] - g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[9]) + (h_RT[7] + h_RT[10])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[9] -= q; // H2O2 + wdot[10] += q; // HO2 + // d()/d[H2O] + dqdci = -k_r * sc[10]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[233] -= dqdci; // dwdot[H2O2]/d[H2O] + J[234] += dqdci; // dwdot[HO2]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[9]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[265] -= dqdci; // dwdot[H2O2]/d[OH] + J[266] += dqdci; // dwdot[HO2]/d[OH] + // d()/d[H2O2] + dqdci = +k_f * sc[8]; + J[295] += dqdci; // dwdot[H2O]/d[H2O2] + J[296] -= dqdci; // dwdot[OH]/d[H2O2] + J[297] -= dqdci; // dwdot[H2O2]/d[H2O2] + J[298] += dqdci; // dwdot[HO2]/d[H2O2] + // d()/d[HO2] + dqdci = -k_r * sc[7]; + J[327] += dqdci; // dwdot[H2O]/d[HO2] + J[328] -= dqdci; // dwdot[OH]/d[HO2] + J[329] -= dqdci; // dwdot[H2O2]/d[HO2] + J[330] += dqdci; // dwdot[HO2]/d[HO2] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1001] -= dqdT; // dwdot[H2O2]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + + // reaction 14: H + HO2 <=> 2 OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[10]; + k_f = 70790000 * exp(-(148.448916412392) * invT); + dlnkfdT = (148.448916412392) * invT2; + // reverse + phi_r = (sc[8] * sc[8]); + Kc = exp(g_RT[4] - 2.000000 * g_RT[8] + g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[10]) + (2.000000 * h_RT[8])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] -= q; // H + wdot[8] += 2 * q; // OH + wdot[10] -= q; // HO2 + // d()/d[H] + dqdci = +k_f * sc[10]; + J[132] -= dqdci; // dwdot[H]/d[H] + J[136] += 2 * dqdci; // dwdot[OH]/d[H] + J[138] -= dqdci; // dwdot[HO2]/d[H] + // d()/d[OH] + dqdci = -k_r * 2.000000 * sc[8]; + J[260] -= dqdci; // dwdot[H]/d[OH] + J[264] += 2 * dqdci; // dwdot[OH]/d[OH] + J[266] -= dqdci; // dwdot[HO2]/d[OH] + // d()/d[HO2] + dqdci = +k_f * sc[4]; + J[324] -= dqdci; // dwdot[H]/d[HO2] + J[328] += 2 * dqdci; // dwdot[OH]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + // d()/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1000] += 2 * dqdT; // dwdot[OH]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + + // reaction 15: H + HO2 <=> H2 + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[10]; + k_f = 11402 * exp(1.0827 * logT - (278.671325189338) * invT); + dlnkfdT = 1.0827 * invT + (278.671325189338) * invT2; + // reverse + phi_r = sc[3] * sc[5]; + Kc = exp(-g_RT[3] + g_RT[4] - g_RT[5] + g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[10]) + (h_RT[3] + h_RT[5])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[5] += q; // O2 + wdot[10] -= q; // HO2 + // d()/d[H2] + dqdci = -k_r * sc[5]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[101] += dqdci; // dwdot[O2]/d[H2] + J[106] -= dqdci; // dwdot[HO2]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[10]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[133] += dqdci; // dwdot[O2]/d[H] + J[138] -= dqdci; // dwdot[HO2]/d[H] + // d()/d[O2] + dqdci = -k_r * sc[3]; + J[163] += dqdci; // dwdot[H2]/d[O2] + J[164] -= dqdci; // dwdot[H]/d[O2] + J[165] += dqdci; // dwdot[O2]/d[O2] + J[170] -= dqdci; // dwdot[HO2]/d[O2] + // d()/d[HO2] + dqdci = +k_f * sc[4]; + J[323] += dqdci; // dwdot[H2]/d[HO2] + J[324] -= dqdci; // dwdot[H]/d[HO2] + J[325] += dqdci; // dwdot[O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[997] += dqdT; // dwdot[O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + + // reaction 16: HO2 + O <=> O2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[10]; + k_f = 32500000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[5] * sc[8]; + Kc = exp(-g_RT[5] + g_RT[6] - g_RT[8] + g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[10]) + (h_RT[5] + h_RT[8])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[10] -= q; // HO2 + // d()/d[O2] + dqdci = -k_r * sc[8]; + J[165] += dqdci; // dwdot[O2]/d[O2] + J[166] -= dqdci; // dwdot[O]/d[O2] + J[168] += dqdci; // dwdot[OH]/d[O2] + J[170] -= dqdci; // dwdot[HO2]/d[O2] + // d()/d[O] + dqdci = +k_f * sc[10]; + J[197] += dqdci; // dwdot[O2]/d[O] + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[202] -= dqdci; // dwdot[HO2]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[5]; + J[261] += dqdci; // dwdot[O2]/d[OH] + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[266] -= dqdci; // dwdot[HO2]/d[OH] + // d()/d[HO2] + dqdci = +k_f * sc[6]; + J[325] += dqdci; // dwdot[O2]/d[HO2] + J[326] -= dqdci; // dwdot[O]/d[HO2] + J[328] += dqdci; // dwdot[OH]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + + // reaction 17: HO2 + OH <=> H2O + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[10]; + k_f = 7000000 * exp(-(-549.995687057926) * invT); + dlnkfdT = (-549.995687057926) * invT2; + // reverse + phi_r = sc[5] * sc[7]; + Kc = exp(-g_RT[5] - g_RT[7] + g_RT[8] + g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[10]) + (h_RT[5] + h_RT[7])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[10] -= q; // HO2 + // d()/d[O2] + dqdci = -k_r * sc[7]; + J[165] += dqdci; // dwdot[O2]/d[O2] + J[167] += dqdci; // dwdot[H2O]/d[O2] + J[168] -= dqdci; // dwdot[OH]/d[O2] + J[170] -= dqdci; // dwdot[HO2]/d[O2] + // d()/d[H2O] + dqdci = -k_r * sc[5]; + J[229] += dqdci; // dwdot[O2]/d[H2O] + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[234] -= dqdci; // dwdot[HO2]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[10]; + J[261] += dqdci; // dwdot[O2]/d[OH] + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[266] -= dqdci; // dwdot[HO2]/d[OH] + // d()/d[HO2] + dqdci = +k_f * sc[8]; + J[325] += dqdci; // dwdot[O2]/d[HO2] + J[327] += dqdci; // dwdot[H2O]/d[HO2] + J[328] -= dqdci; // dwdot[OH]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + + // reaction 18: HO2 + OH <=> H2O + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[10]; + k_f = 450000000 * exp(-(5499.95687057926) * invT); + dlnkfdT = (5499.95687057926) * invT2; + // reverse + phi_r = sc[5] * sc[7]; + Kc = exp(-g_RT[5] - g_RT[7] + g_RT[8] + g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[10]) + (h_RT[5] + h_RT[7])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[10] -= q; // HO2 + // d()/d[O2] + dqdci = -k_r * sc[7]; + J[165] += dqdci; // dwdot[O2]/d[O2] + J[167] += dqdci; // dwdot[H2O]/d[O2] + J[168] -= dqdci; // dwdot[OH]/d[O2] + J[170] -= dqdci; // dwdot[HO2]/d[O2] + // d()/d[H2O] + dqdci = -k_r * sc[5]; + J[229] += dqdci; // dwdot[O2]/d[H2O] + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[234] -= dqdci; // dwdot[HO2]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[10]; + J[261] += dqdci; // dwdot[O2]/d[OH] + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[266] -= dqdci; // dwdot[HO2]/d[OH] + // d()/d[HO2] + dqdci = +k_f * sc[8]; + J[325] += dqdci; // dwdot[O2]/d[HO2] + J[327] += dqdci; // dwdot[H2O]/d[HO2] + J[328] -= dqdci; // dwdot[OH]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + + // reaction 19: 2 HO2 <=> H2O2 + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = (sc[10] * sc[10]); + k_f = 100000000 * exp(-(5555.95633080001) * invT); + dlnkfdT = (5555.95633080001) * invT2; + // reverse + phi_r = sc[5] * sc[9]; + Kc = exp(-g_RT[5] - g_RT[9] + 2.000000 * g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(2.000000 * h_RT[10]) + (h_RT[5] + h_RT[9])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[9] += q; // H2O2 + wdot[10] -= 2 * q; // HO2 + // d()/d[O2] + dqdci = -k_r * sc[9]; + J[165] += dqdci; // dwdot[O2]/d[O2] + J[169] += dqdci; // dwdot[H2O2]/d[O2] + J[170] += -2 * dqdci; // dwdot[HO2]/d[O2] + // d()/d[H2O2] + dqdci = -k_r * sc[5]; + J[293] += dqdci; // dwdot[O2]/d[H2O2] + J[297] += dqdci; // dwdot[H2O2]/d[H2O2] + J[298] += -2 * dqdci; // dwdot[HO2]/d[H2O2] + // d()/d[HO2] + dqdci = +k_f * 2.000000 * sc[10]; + J[325] += dqdci; // dwdot[O2]/d[HO2] + J[329] += dqdci; // dwdot[H2O2]/d[HO2] + J[330] += -2 * dqdci; // dwdot[HO2]/d[HO2] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[1001] += dqdT; // dwdot[H2O2]/dT + J[1002] += -2 * dqdT; // dwdot[HO2]/dT + + // reaction 20: 2 HO2 <=> H2O2 + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = (sc[10] * sc[10]); + k_f = 190000 * exp(-(-708.994440225581) * invT); + dlnkfdT = (-708.994440225581) * invT2; + // reverse + phi_r = sc[5] * sc[9]; + Kc = exp(-g_RT[5] - g_RT[9] + 2.000000 * g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(2.000000 * h_RT[10]) + (h_RT[5] + h_RT[9])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[9] += q; // H2O2 + wdot[10] -= 2 * q; // HO2 + // d()/d[O2] + dqdci = -k_r * sc[9]; + J[165] += dqdci; // dwdot[O2]/d[O2] + J[169] += dqdci; // dwdot[H2O2]/d[O2] + J[170] += -2 * dqdci; // dwdot[HO2]/d[O2] + // d()/d[H2O2] + dqdci = -k_r * sc[5]; + J[293] += dqdci; // dwdot[O2]/d[H2O2] + J[297] += dqdci; // dwdot[H2O2]/d[H2O2] + J[298] += -2 * dqdci; // dwdot[HO2]/d[H2O2] + // d()/d[HO2] + dqdci = +k_f * 2.000000 * sc[10]; + J[325] += dqdci; // dwdot[O2]/d[HO2] + J[329] += dqdci; // dwdot[H2O2]/d[HO2] + J[330] += -2 * dqdci; // dwdot[HO2]/d[HO2] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[1001] += dqdT; // dwdot[H2O2]/dT + J[1002] += -2 * dqdT; // dwdot[HO2]/dT + + // reaction 23: NH3 <=> H + NH2 + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[22]; + k_f = 3.4656307097861e+30 * + exp(-5.22452592834206 * logT - (55938.3595884331) * invT); + dlnkfdT = -5.22452592834206 * invT + (55938.3595884331) * invT2; + // reverse + phi_r = sc[4] * sc[28]; + Kc = refC * exp(-g_RT[4] + g_RT[22] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[22]) + (h_RT[4] + h_RT[28]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[22] -= q; // NH3 + wdot[28] += q; // NH2 + // d()/d[H] + dqdci = -k_r * sc[28]; + J[132] += dqdci; // dwdot[H]/d[H] + J[150] -= dqdci; // dwdot[NH3]/d[H] + J[156] += dqdci; // dwdot[NH2]/d[H] + // d()/d[NH3] + dqdci = +k_f; + J[708] += dqdci; // dwdot[H]/d[NH3] + J[726] -= dqdci; // dwdot[NH3]/d[NH3] + J[732] += dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NH2] + dqdci = -k_r * sc[4]; + J[900] += dqdci; // dwdot[H]/d[NH2] + J[918] -= dqdci; // dwdot[NH3]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1014] -= dqdT; // dwdot[NH3]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 24: H + NH2 <=> H2 + NH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[28]; + k_f = 40000000 * exp(-(1836.74083018723) * invT); + dlnkfdT = (1836.74083018723) * invT2; + // reverse + phi_r = sc[3] * sc[26]; + Kc = exp(-g_RT[3] + g_RT[4] - g_RT[26] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[28]) + (h_RT[3] + h_RT[26])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[26] += q; // NH + wdot[28] -= q; // NH2 + // d()/d[H2] + dqdci = -k_r * sc[26]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[122] += dqdci; // dwdot[NH]/d[H2] + J[124] -= dqdci; // dwdot[NH2]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[28]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[154] += dqdci; // dwdot[NH]/d[H] + J[156] -= dqdci; // dwdot[NH2]/d[H] + // d()/d[NH] + dqdci = -k_r * sc[3]; + J[835] += dqdci; // dwdot[H2]/d[NH] + J[836] -= dqdci; // dwdot[H]/d[NH] + J[858] += dqdci; // dwdot[NH]/d[NH] + J[860] -= dqdci; // dwdot[NH2]/d[NH] + // d()/d[NH2] + dqdci = +k_f * sc[4]; + J[899] += dqdci; // dwdot[H2]/d[NH2] + J[900] -= dqdci; // dwdot[H]/d[NH2] + J[922] += dqdci; // dwdot[NH]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1018] += dqdT; // dwdot[NH]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 25: H + NH3 <=> H2 + NH2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[22]; + k_f = 0.01963 * exp(2.854 * logT - (4287.50663598937) * invT); + dlnkfdT = 2.854 * invT + (4287.50663598937) * invT2; + // reverse + phi_r = sc[3] * sc[28]; + Kc = exp(-g_RT[3] + g_RT[4] + g_RT[22] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[22]) + (h_RT[3] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[22] -= q; // NH3 + wdot[28] += q; // NH2 + // d()/d[H2] + dqdci = -k_r * sc[28]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[118] -= dqdci; // dwdot[NH3]/d[H2] + J[124] += dqdci; // dwdot[NH2]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[22]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[150] -= dqdci; // dwdot[NH3]/d[H] + J[156] += dqdci; // dwdot[NH2]/d[H] + // d()/d[NH3] + dqdci = +k_f * sc[4]; + J[707] += dqdci; // dwdot[H2]/d[NH3] + J[708] -= dqdci; // dwdot[H]/d[NH3] + J[726] -= dqdci; // dwdot[NH3]/d[NH3] + J[732] += dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NH2] + dqdci = -k_r * sc[3]; + J[899] += dqdci; // dwdot[H2]/d[NH2] + J[900] -= dqdci; // dwdot[H]/d[NH2] + J[918] -= dqdci; // dwdot[NH3]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1014] -= dqdT; // dwdot[NH3]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 26: NH3 + OH <=> H2O + NH2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[22]; + k_f = 0.1559 * exp(2.372 * logT - (59.8324615641812) * invT); + dlnkfdT = 2.372 * invT + (59.8324615641812) * invT2; + // reverse + phi_r = sc[7] * sc[28]; + Kc = exp(-g_RT[7] + g_RT[8] + g_RT[22] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[22]) + (h_RT[7] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[22] -= q; // NH3 + wdot[28] += q; // NH2 + // d()/d[H2O] + dqdci = -k_r * sc[28]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[246] -= dqdci; // dwdot[NH3]/d[H2O] + J[252] += dqdci; // dwdot[NH2]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[22]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[278] -= dqdci; // dwdot[NH3]/d[OH] + J[284] += dqdci; // dwdot[NH2]/d[OH] + // d()/d[NH3] + dqdci = +k_f * sc[8]; + J[711] += dqdci; // dwdot[H2O]/d[NH3] + J[712] -= dqdci; // dwdot[OH]/d[NH3] + J[726] -= dqdci; // dwdot[NH3]/d[NH3] + J[732] += dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NH2] + dqdci = -k_r * sc[7]; + J[903] += dqdci; // dwdot[H2O]/d[NH2] + J[904] -= dqdci; // dwdot[OH]/d[NH2] + J[918] -= dqdci; // dwdot[NH3]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1014] -= dqdT; // dwdot[NH3]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 27: NH3 + O <=> NH2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[22]; + k_f = 0.000443 * exp(3.18 * logT - (3391.63000585723) * invT); + dlnkfdT = 3.18 * invT + (3391.63000585723) * invT2; + // reverse + phi_r = sc[8] * sc[28]; + Kc = exp(g_RT[6] - g_RT[8] + g_RT[22] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[22]) + (h_RT[8] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[22] -= q; // NH3 + wdot[28] += q; // NH2 + // d()/d[O] + dqdci = +k_f * sc[22]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[214] -= dqdci; // dwdot[NH3]/d[O] + J[220] += dqdci; // dwdot[NH2]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[28]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[278] -= dqdci; // dwdot[NH3]/d[OH] + J[284] += dqdci; // dwdot[NH2]/d[OH] + // d()/d[NH3] + dqdci = +k_f * sc[6]; + J[710] -= dqdci; // dwdot[O]/d[NH3] + J[712] += dqdci; // dwdot[OH]/d[NH3] + J[726] -= dqdci; // dwdot[NH3]/d[NH3] + J[732] += dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NH2] + dqdci = -k_r * sc[8]; + J[902] -= dqdci; // dwdot[O]/d[NH2] + J[904] += dqdci; // dwdot[OH]/d[NH2] + J[918] -= dqdci; // dwdot[NH3]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1014] -= dqdT; // dwdot[NH3]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 28: HO2 + NH3 <=> H2O2 + NH2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[22]; + k_f = 1.173e-06 * exp(3.839 * logT - (8685.51965178946) * invT); + dlnkfdT = 3.839 * invT + (8685.51965178946) * invT2; + // reverse + phi_r = sc[9] * sc[28]; + Kc = exp(-g_RT[9] + g_RT[10] + g_RT[22] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[22]) + (h_RT[9] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[9] += q; // H2O2 + wdot[10] -= q; // HO2 + wdot[22] -= q; // NH3 + wdot[28] += q; // NH2 + // d()/d[H2O2] + dqdci = -k_r * sc[28]; + J[297] += dqdci; // dwdot[H2O2]/d[H2O2] + J[298] -= dqdci; // dwdot[HO2]/d[H2O2] + J[310] -= dqdci; // dwdot[NH3]/d[H2O2] + J[316] += dqdci; // dwdot[NH2]/d[H2O2] + // d()/d[HO2] + dqdci = +k_f * sc[22]; + J[329] += dqdci; // dwdot[H2O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[342] -= dqdci; // dwdot[NH3]/d[HO2] + J[348] += dqdci; // dwdot[NH2]/d[HO2] + // d()/d[NH3] + dqdci = +k_f * sc[10]; + J[713] += dqdci; // dwdot[H2O2]/d[NH3] + J[714] -= dqdci; // dwdot[HO2]/d[NH3] + J[726] -= dqdci; // dwdot[NH3]/d[NH3] + J[732] += dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NH2] + dqdci = -k_r * sc[9]; + J[905] += dqdci; // dwdot[H2O2]/d[NH2] + J[906] -= dqdci; // dwdot[HO2]/d[NH2] + J[918] -= dqdci; // dwdot[NH3]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1001] += dqdT; // dwdot[H2O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1014] -= dqdT; // dwdot[NH3]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 29: NH3 + O2 <=> HO2 + NH2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[5] * sc[22]; + k_f = 14150 * exp(1.285 * logT - (27789.6371523998) * invT); + dlnkfdT = 1.285 * invT + (27789.6371523998) * invT2; + // reverse + phi_r = sc[10] * sc[28]; + Kc = exp(g_RT[5] - g_RT[10] + g_RT[22] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[5] + h_RT[22]) + (h_RT[10] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] -= q; // O2 + wdot[10] += q; // HO2 + wdot[22] -= q; // NH3 + wdot[28] += q; // NH2 + // d()/d[O2] + dqdci = +k_f * sc[22]; + J[165] -= dqdci; // dwdot[O2]/d[O2] + J[170] += dqdci; // dwdot[HO2]/d[O2] + J[182] -= dqdci; // dwdot[NH3]/d[O2] + J[188] += dqdci; // dwdot[NH2]/d[O2] + // d()/d[HO2] + dqdci = -k_r * sc[28]; + J[325] -= dqdci; // dwdot[O2]/d[HO2] + J[330] += dqdci; // dwdot[HO2]/d[HO2] + J[342] -= dqdci; // dwdot[NH3]/d[HO2] + J[348] += dqdci; // dwdot[NH2]/d[HO2] + // d()/d[NH3] + dqdci = +k_f * sc[5]; + J[709] -= dqdci; // dwdot[O2]/d[NH3] + J[714] += dqdci; // dwdot[HO2]/d[NH3] + J[726] -= dqdci; // dwdot[NH3]/d[NH3] + J[732] += dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NH2] + dqdci = -k_r * sc[10]; + J[901] -= dqdci; // dwdot[O2]/d[NH2] + J[906] += dqdci; // dwdot[HO2]/d[NH2] + J[918] -= dqdci; // dwdot[NH3]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + J[1014] -= dqdT; // dwdot[NH3]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 30: NH2 + O <=> H + HNO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[28]; + k_f = 1500000000 * exp(-0.547 * logT - (421.041384278809) * invT); + dlnkfdT = -0.547 * invT + (421.041384278809) * invT2; + // reverse + phi_r = sc[4] * sc[14]; + Kc = exp(-g_RT[4] + g_RT[6] - g_RT[14] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[28]) + (h_RT[4] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[6] -= q; // O + wdot[14] += q; // HNO + wdot[28] -= q; // NH2 + // d()/d[H] + dqdci = -k_r * sc[14]; + J[132] += dqdci; // dwdot[H]/d[H] + J[134] -= dqdci; // dwdot[O]/d[H] + J[142] += dqdci; // dwdot[HNO]/d[H] + J[156] -= dqdci; // dwdot[NH2]/d[H] + // d()/d[O] + dqdci = +k_f * sc[28]; + J[196] += dqdci; // dwdot[H]/d[O] + J[198] -= dqdci; // dwdot[O]/d[O] + J[206] += dqdci; // dwdot[HNO]/d[O] + J[220] -= dqdci; // dwdot[NH2]/d[O] + // d()/d[HNO] + dqdci = -k_r * sc[4]; + J[452] += dqdci; // dwdot[H]/d[HNO] + J[454] -= dqdci; // dwdot[O]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[476] -= dqdci; // dwdot[NH2]/d[HNO] + // d()/d[NH2] + dqdci = +k_f * sc[6]; + J[900] += dqdci; // dwdot[H]/d[NH2] + J[902] -= dqdci; // dwdot[O]/d[NH2] + J[910] += dqdci; // dwdot[HNO]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 31: NH2 + O <=> H + HNO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[28]; + k_f = 77300000 * exp(-0.277 * logT - (325.279252776171) * invT); + dlnkfdT = -0.277 * invT + (325.279252776171) * invT2; + // reverse + phi_r = sc[4] * sc[14]; + Kc = exp(-g_RT[4] + g_RT[6] - g_RT[14] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[28]) + (h_RT[4] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[6] -= q; // O + wdot[14] += q; // HNO + wdot[28] -= q; // NH2 + // d()/d[H] + dqdci = -k_r * sc[14]; + J[132] += dqdci; // dwdot[H]/d[H] + J[134] -= dqdci; // dwdot[O]/d[H] + J[142] += dqdci; // dwdot[HNO]/d[H] + J[156] -= dqdci; // dwdot[NH2]/d[H] + // d()/d[O] + dqdci = +k_f * sc[28]; + J[196] += dqdci; // dwdot[H]/d[O] + J[198] -= dqdci; // dwdot[O]/d[O] + J[206] += dqdci; // dwdot[HNO]/d[O] + J[220] -= dqdci; // dwdot[NH2]/d[O] + // d()/d[HNO] + dqdci = -k_r * sc[4]; + J[452] += dqdci; // dwdot[H]/d[HNO] + J[454] -= dqdci; // dwdot[O]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[476] -= dqdci; // dwdot[NH2]/d[HNO] + // d()/d[NH2] + dqdci = +k_f * sc[6]; + J[900] += dqdci; // dwdot[H]/d[NH2] + J[902] -= dqdci; // dwdot[O]/d[NH2] + J[910] += dqdci; // dwdot[HNO]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 32: NH2 + O <=> NH + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[28]; + k_f = 7000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[8] * sc[26]; + Kc = exp(g_RT[6] - g_RT[8] - g_RT[26] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[28]) + (h_RT[8] + h_RT[26])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[26] += q; // NH + wdot[28] -= q; // NH2 + // d()/d[O] + dqdci = +k_f * sc[28]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[218] += dqdci; // dwdot[NH]/d[O] + J[220] -= dqdci; // dwdot[NH2]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[26]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[282] += dqdci; // dwdot[NH]/d[OH] + J[284] -= dqdci; // dwdot[NH2]/d[OH] + // d()/d[NH] + dqdci = -k_r * sc[8]; + J[838] -= dqdci; // dwdot[O]/d[NH] + J[840] += dqdci; // dwdot[OH]/d[NH] + J[858] += dqdci; // dwdot[NH]/d[NH] + J[860] -= dqdci; // dwdot[NH2]/d[NH] + // d()/d[NH2] + dqdci = +k_f * sc[6]; + J[902] -= dqdci; // dwdot[O]/d[NH2] + J[904] += dqdci; // dwdot[OH]/d[NH2] + J[922] += dqdci; // dwdot[NH]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1018] += dqdT; // dwdot[NH]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 33: NH2 + O <=> NH + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[28]; + k_f = 330 * exp(1.5 * logT - (2554.7303689574) * invT); + dlnkfdT = 1.5 * invT + (2554.7303689574) * invT2; + // reverse + phi_r = sc[8] * sc[26]; + Kc = exp(g_RT[6] - g_RT[8] - g_RT[26] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[28]) + (h_RT[8] + h_RT[26])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[26] += q; // NH + wdot[28] -= q; // NH2 + // d()/d[O] + dqdci = +k_f * sc[28]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[218] += dqdci; // dwdot[NH]/d[O] + J[220] -= dqdci; // dwdot[NH2]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[26]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[282] += dqdci; // dwdot[NH]/d[OH] + J[284] -= dqdci; // dwdot[NH2]/d[OH] + // d()/d[NH] + dqdci = -k_r * sc[8]; + J[838] -= dqdci; // dwdot[O]/d[NH] + J[840] += dqdci; // dwdot[OH]/d[NH] + J[858] += dqdci; // dwdot[NH]/d[NH] + J[860] -= dqdci; // dwdot[NH2]/d[NH] + // d()/d[NH2] + dqdci = +k_f * sc[6]; + J[902] -= dqdci; // dwdot[O]/d[NH2] + J[904] += dqdci; // dwdot[OH]/d[NH2] + J[922] += dqdci; // dwdot[NH]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1018] += dqdT; // dwdot[NH]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 34: NH2 + OH <=> H2O + NH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[28]; + k_f = 9.6 * exp(1.97 * logT - (337.155166089162) * invT); + dlnkfdT = 1.97 * invT + (337.155166089162) * invT2; + // reverse + phi_r = sc[7] * sc[26]; + Kc = exp(-g_RT[7] + g_RT[8] - g_RT[26] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[28]) + (h_RT[7] + h_RT[26])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[26] += q; // NH + wdot[28] -= q; // NH2 + // d()/d[H2O] + dqdci = -k_r * sc[26]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[250] += dqdci; // dwdot[NH]/d[H2O] + J[252] -= dqdci; // dwdot[NH2]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[28]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[282] += dqdci; // dwdot[NH]/d[OH] + J[284] -= dqdci; // dwdot[NH2]/d[OH] + // d()/d[NH] + dqdci = -k_r * sc[7]; + J[839] += dqdci; // dwdot[H2O]/d[NH] + J[840] -= dqdci; // dwdot[OH]/d[NH] + J[858] += dqdci; // dwdot[NH]/d[NH] + J[860] -= dqdci; // dwdot[NH2]/d[NH] + // d()/d[NH2] + dqdci = +k_f * sc[8]; + J[903] += dqdci; // dwdot[H2O]/d[NH2] + J[904] -= dqdci; // dwdot[OH]/d[NH2] + J[922] += dqdci; // dwdot[NH]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1018] += dqdT; // dwdot[NH]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 35: NH2 + O2 <=> HNO + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[5] * sc[28]; + k_f = 2.9e-08 * exp(3.764 * logT - (9150.99506765883) * invT); + dlnkfdT = 3.764 * invT + (9150.99506765883) * invT2; + // reverse + phi_r = sc[8] * sc[14]; + Kc = exp(g_RT[5] - g_RT[8] - g_RT[14] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[5] + h_RT[28]) + (h_RT[8] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] -= q; // O2 + wdot[8] += q; // OH + wdot[14] += q; // HNO + wdot[28] -= q; // NH2 + // d()/d[O2] + dqdci = +k_f * sc[28]; + J[165] -= dqdci; // dwdot[O2]/d[O2] + J[168] += dqdci; // dwdot[OH]/d[O2] + J[174] += dqdci; // dwdot[HNO]/d[O2] + J[188] -= dqdci; // dwdot[NH2]/d[O2] + // d()/d[OH] + dqdci = -k_r * sc[14]; + J[261] -= dqdci; // dwdot[O2]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[270] += dqdci; // dwdot[HNO]/d[OH] + J[284] -= dqdci; // dwdot[NH2]/d[OH] + // d()/d[HNO] + dqdci = -k_r * sc[8]; + J[453] -= dqdci; // dwdot[O2]/d[HNO] + J[456] += dqdci; // dwdot[OH]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[476] -= dqdci; // dwdot[NH2]/d[HNO] + // d()/d[NH2] + dqdci = +k_f * sc[5]; + J[901] -= dqdci; // dwdot[O2]/d[NH2] + J[904] += dqdci; // dwdot[OH]/d[NH2] + J[910] += dqdci; // dwdot[HNO]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 36: NH2 + O2 <=> H2NO + O + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[5] * sc[28]; + k_f = 260000 * exp(0.487 * logT - (14618.4441416271) * invT); + dlnkfdT = 0.487 * invT + (14618.4441416271) * invT2; + // reverse + phi_r = sc[6] * sc[29]; + Kc = exp(g_RT[5] - g_RT[6] + g_RT[28] - g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[5] + h_RT[28]) + (h_RT[6] + h_RT[29])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] -= q; // O2 + wdot[6] += q; // O + wdot[28] -= q; // NH2 + wdot[29] += q; // H2NO + // d()/d[O2] + dqdci = +k_f * sc[28]; + J[165] -= dqdci; // dwdot[O2]/d[O2] + J[166] += dqdci; // dwdot[O]/d[O2] + J[188] -= dqdci; // dwdot[NH2]/d[O2] + J[189] += dqdci; // dwdot[H2NO]/d[O2] + // d()/d[O] + dqdci = -k_r * sc[29]; + J[197] -= dqdci; // dwdot[O2]/d[O] + J[198] += dqdci; // dwdot[O]/d[O] + J[220] -= dqdci; // dwdot[NH2]/d[O] + J[221] += dqdci; // dwdot[H2NO]/d[O] + // d()/d[NH2] + dqdci = +k_f * sc[5]; + J[901] -= dqdci; // dwdot[O2]/d[NH2] + J[902] += dqdci; // dwdot[O]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + J[925] += dqdci; // dwdot[H2NO]/d[NH2] + // d()/d[H2NO] + dqdci = -k_r * sc[6]; + J[933] -= dqdci; // dwdot[O2]/d[H2NO] + J[934] += dqdci; // dwdot[O]/d[H2NO] + J[956] -= dqdci; // dwdot[NH2]/d[H2NO] + J[957] += dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[998] += dqdT; // dwdot[O]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + J[1021] += dqdT; // dwdot[H2NO]/dT + + // reaction 37: HO2 + NH2 <=> H2NO + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[28]; + k_f = 15660000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[8] * sc[29]; + Kc = exp(-g_RT[8] + g_RT[10] + g_RT[28] - g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[28]) + (h_RT[8] + h_RT[29])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[8] += q; // OH + wdot[10] -= q; // HO2 + wdot[28] -= q; // NH2 + wdot[29] += q; // H2NO + // d()/d[OH] + dqdci = -k_r * sc[29]; + J[264] += dqdci; // dwdot[OH]/d[OH] + J[266] -= dqdci; // dwdot[HO2]/d[OH] + J[284] -= dqdci; // dwdot[NH2]/d[OH] + J[285] += dqdci; // dwdot[H2NO]/d[OH] + // d()/d[HO2] + dqdci = +k_f * sc[28]; + J[328] += dqdci; // dwdot[OH]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[348] -= dqdci; // dwdot[NH2]/d[HO2] + J[349] += dqdci; // dwdot[H2NO]/d[HO2] + // d()/d[NH2] + dqdci = +k_f * sc[10]; + J[904] += dqdci; // dwdot[OH]/d[NH2] + J[906] -= dqdci; // dwdot[HO2]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + J[925] += dqdci; // dwdot[H2NO]/d[NH2] + // d()/d[H2NO] + dqdci = -k_r * sc[8]; + J[936] += dqdci; // dwdot[OH]/d[H2NO] + J[938] -= dqdci; // dwdot[HO2]/d[H2NO] + J[956] -= dqdci; // dwdot[NH2]/d[H2NO] + J[957] += dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + J[1021] += dqdT; // dwdot[H2NO]/dT + + // reaction 38: NH + NH2 <=> H + N2H2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[26] * sc[28]; + k_f = 1500000000 * exp(-0.5 * logT); + dlnkfdT = -0.5 * invT; + // reverse + phi_r = sc[4] * sc[18]; + Kc = exp(-g_RT[4] - g_RT[18] + g_RT[26] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[26] + h_RT[28]) + (h_RT[4] + h_RT[18])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[18] += q; // N2H2 + wdot[26] -= q; // NH + wdot[28] -= q; // NH2 + // d()/d[H] + dqdci = -k_r * sc[18]; + J[132] += dqdci; // dwdot[H]/d[H] + J[146] += dqdci; // dwdot[N2H2]/d[H] + J[154] -= dqdci; // dwdot[NH]/d[H] + J[156] -= dqdci; // dwdot[NH2]/d[H] + // d()/d[N2H2] + dqdci = -k_r * sc[4]; + J[580] += dqdci; // dwdot[H]/d[N2H2] + J[594] += dqdci; // dwdot[N2H2]/d[N2H2] + J[602] -= dqdci; // dwdot[NH]/d[N2H2] + J[604] -= dqdci; // dwdot[NH2]/d[N2H2] + // d()/d[NH] + dqdci = +k_f * sc[28]; + J[836] += dqdci; // dwdot[H]/d[NH] + J[850] += dqdci; // dwdot[N2H2]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + J[860] -= dqdci; // dwdot[NH2]/d[NH] + // d()/d[NH2] + dqdci = +k_f * sc[26]; + J[900] += dqdci; // dwdot[H]/d[NH2] + J[914] += dqdci; // dwdot[N2H2]/d[NH2] + J[922] -= dqdci; // dwdot[NH]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1010] += dqdT; // dwdot[N2H2]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 39: NH + NH2 <=> N + NH3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[26] * sc[28]; + k_f = 0.0096 * exp(2.46 * logT - (53.844183241105) * invT); + dlnkfdT = 2.46 * invT + (53.844183241105) * invT2; + // reverse + phi_r = sc[22] * sc[24]; + Kc = exp(-g_RT[22] - g_RT[24] + g_RT[26] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[26] + h_RT[28]) + (h_RT[22] + h_RT[24])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[22] += q; // NH3 + wdot[24] += q; // N + wdot[26] -= q; // NH + wdot[28] -= q; // NH2 + // d()/d[NH3] + dqdci = -k_r * sc[24]; + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[728] += dqdci; // dwdot[N]/d[NH3] + J[730] -= dqdci; // dwdot[NH]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + // d()/d[N] + dqdci = -k_r * sc[22]; + J[790] += dqdci; // dwdot[NH3]/d[N] + J[792] += dqdci; // dwdot[N]/d[N] + J[794] -= dqdci; // dwdot[NH]/d[N] + J[796] -= dqdci; // dwdot[NH2]/d[N] + // d()/d[NH] + dqdci = +k_f * sc[28]; + J[854] += dqdci; // dwdot[NH3]/d[NH] + J[856] += dqdci; // dwdot[N]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + J[860] -= dqdci; // dwdot[NH2]/d[NH] + // d()/d[NH2] + dqdci = +k_f * sc[26]; + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[920] += dqdci; // dwdot[N]/d[NH2] + J[922] -= dqdci; // dwdot[NH]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1016] += dqdT; // dwdot[N]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 40: 2 NH <=> N + NH2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = (sc[26] * sc[26]); + k_f = 5.7e-07 * exp(3.88 * logT - (172.100099705214) * invT); + dlnkfdT = 3.88 * invT + (172.100099705214) * invT2; + // reverse + phi_r = sc[24] * sc[28]; + Kc = exp(-g_RT[24] + 2.000000 * g_RT[26] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(2.000000 * h_RT[26]) + (h_RT[24] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[24] += q; // N + wdot[26] -= 2 * q; // NH + wdot[28] += q; // NH2 + // d()/d[N] + dqdci = -k_r * sc[28]; + J[792] += dqdci; // dwdot[N]/d[N] + J[794] += -2 * dqdci; // dwdot[NH]/d[N] + J[796] += dqdci; // dwdot[NH2]/d[N] + // d()/d[NH] + dqdci = +k_f * 2.000000 * sc[26]; + J[856] += dqdci; // dwdot[N]/d[NH] + J[858] += -2 * dqdci; // dwdot[NH]/d[NH] + J[860] += dqdci; // dwdot[NH2]/d[NH] + // d()/d[NH2] + dqdci = -k_r * sc[24]; + J[920] += dqdci; // dwdot[N]/d[NH2] + J[922] += -2 * dqdci; // dwdot[NH]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1016] += dqdT; // dwdot[N]/dT + J[1018] += -2 * dqdT; // dwdot[NH]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 41: 2 NH => H2 + N2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = (sc[26] * sc[26]); + k_f = 6260000 * exp(-0.036 * logT - (-80.9675615279794) * invT); + dlnkfdT = -0.036 * invT + (-80.9675615279794) * invT2; + // rate of progress + q = k_f * phi_f; + dqdT = dlnkfdT * k_f * phi_f; + // update wdot + wdot[1] += q; // N2 + wdot[3] += q; // H2 + wdot[26] -= 2 * q; // NH + // d()/d[NH] + dqdci = +k_f * 2.000000 * sc[26]; + J[833] += dqdci; // dwdot[N2]/d[NH] + J[835] += dqdci; // dwdot[H2]/d[NH] + J[858] += -2 * dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[995] += dqdT; // dwdot[H2]/dT + J[1018] += -2 * dqdT; // dwdot[NH]/dT + + // reaction 42: 2 NH => 2 H + N2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = (sc[26] * sc[26]); + k_f = 56340000 * exp(-0.036 * logT - (-80.9675615279794) * invT); + dlnkfdT = -0.036 * invT + (-80.9675615279794) * invT2; + // rate of progress + q = k_f * phi_f; + dqdT = dlnkfdT * k_f * phi_f; + // update wdot + wdot[1] += q; // N2 + wdot[4] += 2 * q; // H + wdot[26] -= 2 * q; // NH + // d()/d[NH] + dqdci = +k_f * 2.000000 * sc[26]; + J[833] += dqdci; // dwdot[N2]/d[NH] + J[836] += 2 * dqdci; // dwdot[H]/d[NH] + J[858] += -2 * dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[996] += 2 * dqdT; // dwdot[H]/dT + J[1018] += -2 * dqdT; // dwdot[NH]/dT + + // reaction 43: 2 NH2 <=> NH + NH3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = (sc[28] * sc[28]); + k_f = 5.64e-06 * exp(3.53 * logT - (276.769166192596) * invT); + dlnkfdT = 3.53 * invT + (276.769166192596) * invT2; + // reverse + phi_r = sc[22] * sc[26]; + Kc = exp(-g_RT[22] - g_RT[26] + 2.000000 * g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(2.000000 * h_RT[28]) + (h_RT[22] + h_RT[26])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[22] += q; // NH3 + wdot[26] += q; // NH + wdot[28] -= 2 * q; // NH2 + // d()/d[NH3] + dqdci = -k_r * sc[26]; + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[730] += dqdci; // dwdot[NH]/d[NH3] + J[732] += -2 * dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NH] + dqdci = -k_r * sc[22]; + J[854] += dqdci; // dwdot[NH3]/d[NH] + J[858] += dqdci; // dwdot[NH]/d[NH] + J[860] += -2 * dqdci; // dwdot[NH2]/d[NH] + // d()/d[NH2] + dqdci = +k_f * 2.000000 * sc[28]; + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[922] += dqdci; // dwdot[NH]/d[NH2] + J[924] += -2 * dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1018] += dqdT; // dwdot[NH]/dT + J[1020] += -2 * dqdT; // dwdot[NH2]/dT + + // reaction 44: 2 NH2 <=> N2H4 + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = (sc[28] * sc[28]); + k_f = 5.42248766831622e+42 * + exp(-11.2978848534069 * logT - (5973.94105162226) * invT); + dlnkfdT = -11.2978848534069 * invT + (5973.94105162226) * invT2; + // reverse + phi_r = sc[23]; + Kc = refCinv * exp(-g_RT[23] + 2.000000 * g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(2.000000 * h_RT[28]) + (h_RT[23]) + 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[23] += q; // N2H4 + wdot[28] -= 2 * q; // NH2 + // d()/d[N2H4] + dqdci = -k_r; + J[759] += dqdci; // dwdot[N2H4]/d[N2H4] + J[764] += -2 * dqdci; // dwdot[NH2]/d[N2H4] + // d()/d[NH2] + dqdci = +k_f * 2.000000 * sc[28]; + J[919] += dqdci; // dwdot[N2H4]/d[NH2] + J[924] += -2 * dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1015] += dqdT; // dwdot[N2H4]/dT + J[1020] += -2 * dqdT; // dwdot[NH2]/dT + + // reaction 45: 2 NH2 <=> H + N2H3 + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = (sc[28] * sc[28]); + k_f = 1198178.67715513 * + exp(-0.0298856677517254 * logT - (5074.23692769742) * invT); + dlnkfdT = -0.0298856677517254 * invT + (5074.23692769742) * invT2; + // reverse + phi_r = sc[4] * sc[30]; + Kc = exp(-g_RT[4] + 2.000000 * g_RT[28] - g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(2.000000 * h_RT[28]) + (h_RT[4] + h_RT[30])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[28] -= 2 * q; // NH2 + wdot[30] += q; // N2H3 + // d()/d[H] + dqdci = -k_r * sc[30]; + J[132] += dqdci; // dwdot[H]/d[H] + J[156] += -2 * dqdci; // dwdot[NH2]/d[H] + J[158] += dqdci; // dwdot[N2H3]/d[H] + // d()/d[NH2] + dqdci = +k_f * 2.000000 * sc[28]; + J[900] += dqdci; // dwdot[H]/d[NH2] + J[924] += -2 * dqdci; // dwdot[NH2]/d[NH2] + J[926] += dqdci; // dwdot[N2H3]/d[NH2] + // d()/d[N2H3] + dqdci = -k_r * sc[4]; + J[964] += dqdci; // dwdot[H]/d[N2H3] + J[988] += -2 * dqdci; // dwdot[NH2]/d[N2H3] + J[990] += dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1020] += -2 * dqdT; // dwdot[NH2]/dT + J[1022] += dqdT; // dwdot[N2H3]/dT + + // reaction 46: 2 NH2 <=> H2 + H2NN + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = (sc[28] * sc[28]); + k_f = 1.18900999517547e+15 * + exp(-3.07902817588967 * logT - (1691.28964263562) * invT); + dlnkfdT = -3.07902817588967 * invT + (1691.28964263562) * invT2; + // reverse + phi_r = sc[3] * sc[19]; + Kc = exp(-g_RT[3] - g_RT[19] + 2.000000 * g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(2.000000 * h_RT[28]) + (h_RT[3] + h_RT[19])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[19] += q; // H2NN + wdot[28] -= 2 * q; // NH2 + // d()/d[H2] + dqdci = -k_r * sc[19]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[115] += dqdci; // dwdot[H2NN]/d[H2] + J[124] += -2 * dqdci; // dwdot[NH2]/d[H2] + // d()/d[H2NN] + dqdci = -k_r * sc[3]; + J[611] += dqdci; // dwdot[H2]/d[H2NN] + J[627] += dqdci; // dwdot[H2NN]/d[H2NN] + J[636] += -2 * dqdci; // dwdot[NH2]/d[H2NN] + // d()/d[NH2] + dqdci = +k_f * 2.000000 * sc[28]; + J[899] += dqdci; // dwdot[H2]/d[NH2] + J[915] += dqdci; // dwdot[H2NN]/d[NH2] + J[924] += -2 * dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[1011] += dqdT; // dwdot[H2NN]/dT + J[1020] += -2 * dqdT; // dwdot[NH2]/dT + + // reaction 48: H + NH2OH <=> H2 + HNOH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[20]; + k_f = 480 * exp(1.5 * logT - (3144.60094461369) * invT); + dlnkfdT = 1.5 * invT + (3144.60094461369) * invT2; + // reverse + phi_r = sc[3] * sc[21]; + Kc = exp(-g_RT[3] + g_RT[4] + g_RT[20] - g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[20]) + (h_RT[3] + h_RT[21])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[20] -= q; // NH2OH + wdot[21] += q; // HNOH + // d()/d[H2] + dqdci = -k_r * sc[21]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[116] -= dqdci; // dwdot[NH2OH]/d[H2] + J[117] += dqdci; // dwdot[HNOH]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[20]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[148] -= dqdci; // dwdot[NH2OH]/d[H] + J[149] += dqdci; // dwdot[HNOH]/d[H] + // d()/d[NH2OH] + dqdci = +k_f * sc[4]; + J[643] += dqdci; // dwdot[H2]/d[NH2OH] + J[644] -= dqdci; // dwdot[H]/d[NH2OH] + J[660] -= dqdci; // dwdot[NH2OH]/d[NH2OH] + J[661] += dqdci; // dwdot[HNOH]/d[NH2OH] + // d()/d[HNOH] + dqdci = -k_r * sc[3]; + J[675] += dqdci; // dwdot[H2]/d[HNOH] + J[676] -= dqdci; // dwdot[H]/d[HNOH] + J[692] -= dqdci; // dwdot[NH2OH]/d[HNOH] + J[693] += dqdci; // dwdot[HNOH]/d[HNOH] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1013] += dqdT; // dwdot[HNOH]/dT + + // reaction 49: H + NH2OH <=> H2 + H2NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[20]; + k_f = 240 * exp(1.5 * logT - (2549.79884563251) * invT); + dlnkfdT = 1.5 * invT + (2549.79884563251) * invT2; + // reverse + phi_r = sc[3] * sc[29]; + Kc = exp(-g_RT[3] + g_RT[4] + g_RT[20] - g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[20]) + (h_RT[3] + h_RT[29])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[20] -= q; // NH2OH + wdot[29] += q; // H2NO + // d()/d[H2] + dqdci = -k_r * sc[29]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[116] -= dqdci; // dwdot[NH2OH]/d[H2] + J[125] += dqdci; // dwdot[H2NO]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[20]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[148] -= dqdci; // dwdot[NH2OH]/d[H] + J[157] += dqdci; // dwdot[H2NO]/d[H] + // d()/d[NH2OH] + dqdci = +k_f * sc[4]; + J[643] += dqdci; // dwdot[H2]/d[NH2OH] + J[644] -= dqdci; // dwdot[H]/d[NH2OH] + J[660] -= dqdci; // dwdot[NH2OH]/d[NH2OH] + J[669] += dqdci; // dwdot[H2NO]/d[NH2OH] + // d()/d[H2NO] + dqdci = -k_r * sc[3]; + J[931] += dqdci; // dwdot[H2]/d[H2NO] + J[932] -= dqdci; // dwdot[H]/d[H2NO] + J[948] -= dqdci; // dwdot[NH2OH]/d[H2NO] + J[957] += dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1021] += dqdT; // dwdot[H2NO]/dT + + // reaction 50: NH2OH + O <=> HNOH + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[20]; + k_f = 330 * exp(1.5 * logT - (1944.93241333524) * invT); + dlnkfdT = 1.5 * invT + (1944.93241333524) * invT2; + // reverse + phi_r = sc[8] * sc[21]; + Kc = exp(g_RT[6] - g_RT[8] + g_RT[20] - g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[20]) + (h_RT[8] + h_RT[21])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[20] -= q; // NH2OH + wdot[21] += q; // HNOH + // d()/d[O] + dqdci = +k_f * sc[20]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[212] -= dqdci; // dwdot[NH2OH]/d[O] + J[213] += dqdci; // dwdot[HNOH]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[21]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[276] -= dqdci; // dwdot[NH2OH]/d[OH] + J[277] += dqdci; // dwdot[HNOH]/d[OH] + // d()/d[NH2OH] + dqdci = +k_f * sc[6]; + J[646] -= dqdci; // dwdot[O]/d[NH2OH] + J[648] += dqdci; // dwdot[OH]/d[NH2OH] + J[660] -= dqdci; // dwdot[NH2OH]/d[NH2OH] + J[661] += dqdci; // dwdot[HNOH]/d[NH2OH] + // d()/d[HNOH] + dqdci = -k_r * sc[8]; + J[678] -= dqdci; // dwdot[O]/d[HNOH] + J[680] += dqdci; // dwdot[OH]/d[HNOH] + J[692] -= dqdci; // dwdot[NH2OH]/d[HNOH] + J[693] += dqdci; // dwdot[HNOH]/d[HNOH] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1013] += dqdT; // dwdot[HNOH]/dT + + // reaction 51: NH2OH + O <=> H2NO + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[20]; + k_f = 170 * exp(1.5 * logT - (1514.68216407221) * invT); + dlnkfdT = 1.5 * invT + (1514.68216407221) * invT2; + // reverse + phi_r = sc[8] * sc[29]; + Kc = exp(g_RT[6] - g_RT[8] + g_RT[20] - g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[20]) + (h_RT[8] + h_RT[29])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[20] -= q; // NH2OH + wdot[29] += q; // H2NO + // d()/d[O] + dqdci = +k_f * sc[20]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[212] -= dqdci; // dwdot[NH2OH]/d[O] + J[221] += dqdci; // dwdot[H2NO]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[29]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[276] -= dqdci; // dwdot[NH2OH]/d[OH] + J[285] += dqdci; // dwdot[H2NO]/d[OH] + // d()/d[NH2OH] + dqdci = +k_f * sc[6]; + J[646] -= dqdci; // dwdot[O]/d[NH2OH] + J[648] += dqdci; // dwdot[OH]/d[NH2OH] + J[660] -= dqdci; // dwdot[NH2OH]/d[NH2OH] + J[669] += dqdci; // dwdot[H2NO]/d[NH2OH] + // d()/d[H2NO] + dqdci = -k_r * sc[8]; + J[934] -= dqdci; // dwdot[O]/d[H2NO] + J[936] += dqdci; // dwdot[OH]/d[H2NO] + J[948] -= dqdci; // dwdot[NH2OH]/d[H2NO] + J[957] += dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1021] += dqdT; // dwdot[H2NO]/dT + + // reaction 52: NH2OH + OH <=> H2O + HNOH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[20]; + k_f = 0.015 * exp(2.61 * logT - (-1779.87734695129) * invT); + dlnkfdT = 2.61 * invT + (-1779.87734695129) * invT2; + // reverse + phi_r = sc[7] * sc[21]; + Kc = exp(-g_RT[7] + g_RT[8] + g_RT[20] - g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[20]) + (h_RT[7] + h_RT[21])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[20] -= q; // NH2OH + wdot[21] += q; // HNOH + // d()/d[H2O] + dqdci = -k_r * sc[21]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[244] -= dqdci; // dwdot[NH2OH]/d[H2O] + J[245] += dqdci; // dwdot[HNOH]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[20]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[276] -= dqdci; // dwdot[NH2OH]/d[OH] + J[277] += dqdci; // dwdot[HNOH]/d[OH] + // d()/d[NH2OH] + dqdci = +k_f * sc[8]; + J[647] += dqdci; // dwdot[H2O]/d[NH2OH] + J[648] -= dqdci; // dwdot[OH]/d[NH2OH] + J[660] -= dqdci; // dwdot[NH2OH]/d[NH2OH] + J[661] += dqdci; // dwdot[HNOH]/d[NH2OH] + // d()/d[HNOH] + dqdci = -k_r * sc[7]; + J[679] += dqdci; // dwdot[H2O]/d[HNOH] + J[680] -= dqdci; // dwdot[OH]/d[HNOH] + J[692] -= dqdci; // dwdot[NH2OH]/d[HNOH] + J[693] += dqdci; // dwdot[HNOH]/d[HNOH] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1013] += dqdT; // dwdot[HNOH]/dT + + // reaction 53: NH2OH + OH <=> H2NO + H2O + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[20]; + k_f = 0.15 * exp(2.28 * logT - (-652.168798882917) * invT); + dlnkfdT = 2.28 * invT + (-652.168798882917) * invT2; + // reverse + phi_r = sc[7] * sc[29]; + Kc = exp(-g_RT[7] + g_RT[8] + g_RT[20] - g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[20]) + (h_RT[7] + h_RT[29])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[20] -= q; // NH2OH + wdot[29] += q; // H2NO + // d()/d[H2O] + dqdci = -k_r * sc[29]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[244] -= dqdci; // dwdot[NH2OH]/d[H2O] + J[253] += dqdci; // dwdot[H2NO]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[20]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[276] -= dqdci; // dwdot[NH2OH]/d[OH] + J[285] += dqdci; // dwdot[H2NO]/d[OH] + // d()/d[NH2OH] + dqdci = +k_f * sc[8]; + J[647] += dqdci; // dwdot[H2O]/d[NH2OH] + J[648] -= dqdci; // dwdot[OH]/d[NH2OH] + J[660] -= dqdci; // dwdot[NH2OH]/d[NH2OH] + J[669] += dqdci; // dwdot[H2NO]/d[NH2OH] + // d()/d[H2NO] + dqdci = -k_r * sc[7]; + J[935] += dqdci; // dwdot[H2O]/d[H2NO] + J[936] -= dqdci; // dwdot[OH]/d[H2NO] + J[948] -= dqdci; // dwdot[NH2OH]/d[H2NO] + J[957] += dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1021] += dqdT; // dwdot[H2NO]/dT + + // reaction 54: NH2 + NH2OH <=> HNOH + NH3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[20] * sc[28]; + k_f = 1.1e-07 * exp(4 * logT - (-48.8120165830578) * invT); + dlnkfdT = 4 * invT + (-48.8120165830578) * invT2; + // reverse + phi_r = sc[21] * sc[22]; + Kc = exp(g_RT[20] - g_RT[21] - g_RT[22] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[20] + h_RT[28]) + (h_RT[21] + h_RT[22])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[20] -= q; // NH2OH + wdot[21] += q; // HNOH + wdot[22] += q; // NH3 + wdot[28] -= q; // NH2 + // d()/d[NH2OH] + dqdci = +k_f * sc[28]; + J[660] -= dqdci; // dwdot[NH2OH]/d[NH2OH] + J[661] += dqdci; // dwdot[HNOH]/d[NH2OH] + J[662] += dqdci; // dwdot[NH3]/d[NH2OH] + J[668] -= dqdci; // dwdot[NH2]/d[NH2OH] + // d()/d[HNOH] + dqdci = -k_r * sc[22]; + J[692] -= dqdci; // dwdot[NH2OH]/d[HNOH] + J[693] += dqdci; // dwdot[HNOH]/d[HNOH] + J[694] += dqdci; // dwdot[NH3]/d[HNOH] + J[700] -= dqdci; // dwdot[NH2]/d[HNOH] + // d()/d[NH3] + dqdci = -k_r * sc[21]; + J[724] -= dqdci; // dwdot[NH2OH]/d[NH3] + J[725] += dqdci; // dwdot[HNOH]/d[NH3] + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NH2] + dqdci = +k_f * sc[20]; + J[916] -= dqdci; // dwdot[NH2OH]/d[NH2] + J[917] += dqdci; // dwdot[HNOH]/d[NH2] + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1013] += dqdT; // dwdot[HNOH]/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 55: NH2 + NH2OH <=> H2NO + NH3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[20] * sc[28]; + k_f = 9.5e-06 * exp(3.42 * logT - (-509.758482460181) * invT); + dlnkfdT = 3.42 * invT + (-509.758482460181) * invT2; + // reverse + phi_r = sc[22] * sc[29]; + Kc = exp(g_RT[20] - g_RT[22] + g_RT[28] - g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[20] + h_RT[28]) + (h_RT[22] + h_RT[29])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[20] -= q; // NH2OH + wdot[22] += q; // NH3 + wdot[28] -= q; // NH2 + wdot[29] += q; // H2NO + // d()/d[NH2OH] + dqdci = +k_f * sc[28]; + J[660] -= dqdci; // dwdot[NH2OH]/d[NH2OH] + J[662] += dqdci; // dwdot[NH3]/d[NH2OH] + J[668] -= dqdci; // dwdot[NH2]/d[NH2OH] + J[669] += dqdci; // dwdot[H2NO]/d[NH2OH] + // d()/d[NH3] + dqdci = -k_r * sc[29]; + J[724] -= dqdci; // dwdot[NH2OH]/d[NH3] + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + J[733] += dqdci; // dwdot[H2NO]/d[NH3] + // d()/d[NH2] + dqdci = +k_f * sc[20]; + J[916] -= dqdci; // dwdot[NH2OH]/d[NH2] + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + J[925] += dqdci; // dwdot[H2NO]/d[NH2] + // d()/d[H2NO] + dqdci = -k_r * sc[22]; + J[948] -= dqdci; // dwdot[NH2OH]/d[H2NO] + J[950] += dqdci; // dwdot[NH3]/d[H2NO] + J[956] -= dqdci; // dwdot[NH2]/d[H2NO] + J[957] += dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + J[1021] += dqdT; // dwdot[H2NO]/dT + + // reaction 56: NH + NH2OH <=> HNOH + NH2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[20] * sc[26]; + k_f = 2.9e-09 * exp(4.4 * logT - (787.030865318582) * invT); + dlnkfdT = 4.4 * invT + (787.030865318582) * invT2; + // reverse + phi_r = sc[21] * sc[28]; + Kc = exp(g_RT[20] - g_RT[21] + g_RT[26] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[20] + h_RT[26]) + (h_RT[21] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[20] -= q; // NH2OH + wdot[21] += q; // HNOH + wdot[26] -= q; // NH + wdot[28] += q; // NH2 + // d()/d[NH2OH] + dqdci = +k_f * sc[26]; + J[660] -= dqdci; // dwdot[NH2OH]/d[NH2OH] + J[661] += dqdci; // dwdot[HNOH]/d[NH2OH] + J[666] -= dqdci; // dwdot[NH]/d[NH2OH] + J[668] += dqdci; // dwdot[NH2]/d[NH2OH] + // d()/d[HNOH] + dqdci = -k_r * sc[28]; + J[692] -= dqdci; // dwdot[NH2OH]/d[HNOH] + J[693] += dqdci; // dwdot[HNOH]/d[HNOH] + J[698] -= dqdci; // dwdot[NH]/d[HNOH] + J[700] += dqdci; // dwdot[NH2]/d[HNOH] + // d()/d[NH] + dqdci = +k_f * sc[20]; + J[852] -= dqdci; // dwdot[NH2OH]/d[NH] + J[853] += dqdci; // dwdot[HNOH]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + J[860] += dqdci; // dwdot[NH2]/d[NH] + // d()/d[NH2] + dqdci = -k_r * sc[21]; + J[916] -= dqdci; // dwdot[NH2OH]/d[NH2] + J[917] += dqdci; // dwdot[HNOH]/d[NH2] + J[922] -= dqdci; // dwdot[NH]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1013] += dqdT; // dwdot[HNOH]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 57: NH + NH2OH <=> H2NO + NH2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[20] * sc[26]; + k_f = 1.5e-09 * exp(4.6 * logT - (1219.79719791064) * invT); + dlnkfdT = 4.6 * invT + (1219.79719791064) * invT2; + // reverse + phi_r = sc[28] * sc[29]; + Kc = exp(g_RT[20] + g_RT[26] - g_RT[28] - g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[20] + h_RT[26]) + (h_RT[28] + h_RT[29])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[20] -= q; // NH2OH + wdot[26] -= q; // NH + wdot[28] += q; // NH2 + wdot[29] += q; // H2NO + // d()/d[NH2OH] + dqdci = +k_f * sc[26]; + J[660] -= dqdci; // dwdot[NH2OH]/d[NH2OH] + J[666] -= dqdci; // dwdot[NH]/d[NH2OH] + J[668] += dqdci; // dwdot[NH2]/d[NH2OH] + J[669] += dqdci; // dwdot[H2NO]/d[NH2OH] + // d()/d[NH] + dqdci = +k_f * sc[20]; + J[852] -= dqdci; // dwdot[NH2OH]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + J[860] += dqdci; // dwdot[NH2]/d[NH] + J[861] += dqdci; // dwdot[H2NO]/d[NH] + // d()/d[NH2] + dqdci = -k_r * sc[29]; + J[916] -= dqdci; // dwdot[NH2OH]/d[NH2] + J[922] -= dqdci; // dwdot[NH]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + J[925] += dqdci; // dwdot[H2NO]/d[NH2] + // d()/d[H2NO] + dqdci = -k_r * sc[28]; + J[948] -= dqdci; // dwdot[NH2OH]/d[H2NO] + J[954] -= dqdci; // dwdot[NH]/d[H2NO] + J[956] += dqdci; // dwdot[NH2]/d[H2NO] + J[957] += dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + J[1021] += dqdT; // dwdot[H2NO]/dT + + // reaction 58: HO2 + NH2OH <=> H2O2 + HNOH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[20]; + k_f = 0.029 * exp(2.69 * logT - (4809.24167509571) * invT); + dlnkfdT = 2.69 * invT + (4809.24167509571) * invT2; + // reverse + phi_r = sc[9] * sc[21]; + Kc = exp(-g_RT[9] + g_RT[10] + g_RT[20] - g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[20]) + (h_RT[9] + h_RT[21])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[9] += q; // H2O2 + wdot[10] -= q; // HO2 + wdot[20] -= q; // NH2OH + wdot[21] += q; // HNOH + // d()/d[H2O2] + dqdci = -k_r * sc[21]; + J[297] += dqdci; // dwdot[H2O2]/d[H2O2] + J[298] -= dqdci; // dwdot[HO2]/d[H2O2] + J[308] -= dqdci; // dwdot[NH2OH]/d[H2O2] + J[309] += dqdci; // dwdot[HNOH]/d[H2O2] + // d()/d[HO2] + dqdci = +k_f * sc[20]; + J[329] += dqdci; // dwdot[H2O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[340] -= dqdci; // dwdot[NH2OH]/d[HO2] + J[341] += dqdci; // dwdot[HNOH]/d[HO2] + // d()/d[NH2OH] + dqdci = +k_f * sc[10]; + J[649] += dqdci; // dwdot[H2O2]/d[NH2OH] + J[650] -= dqdci; // dwdot[HO2]/d[NH2OH] + J[660] -= dqdci; // dwdot[NH2OH]/d[NH2OH] + J[661] += dqdci; // dwdot[HNOH]/d[NH2OH] + // d()/d[HNOH] + dqdci = -k_r * sc[9]; + J[681] += dqdci; // dwdot[H2O2]/d[HNOH] + J[682] -= dqdci; // dwdot[HO2]/d[HNOH] + J[692] -= dqdci; // dwdot[NH2OH]/d[HNOH] + J[693] += dqdci; // dwdot[HNOH]/d[HNOH] + // d()/dT + J[1001] += dqdT; // dwdot[H2O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1013] += dqdT; // dwdot[HNOH]/dT + + // reaction 59: HO2 + NH2OH <=> H2NO + H2O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[20]; + k_f = 0.014 * exp(2.69 * logT - (3229.64456113469) * invT); + dlnkfdT = 2.69 * invT + (3229.64456113469) * invT2; + // reverse + phi_r = sc[9] * sc[29]; + Kc = exp(-g_RT[9] + g_RT[10] + g_RT[20] - g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[20]) + (h_RT[9] + h_RT[29])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[9] += q; // H2O2 + wdot[10] -= q; // HO2 + wdot[20] -= q; // NH2OH + wdot[29] += q; // H2NO + // d()/d[H2O2] + dqdci = -k_r * sc[29]; + J[297] += dqdci; // dwdot[H2O2]/d[H2O2] + J[298] -= dqdci; // dwdot[HO2]/d[H2O2] + J[308] -= dqdci; // dwdot[NH2OH]/d[H2O2] + J[317] += dqdci; // dwdot[H2NO]/d[H2O2] + // d()/d[HO2] + dqdci = +k_f * sc[20]; + J[329] += dqdci; // dwdot[H2O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[340] -= dqdci; // dwdot[NH2OH]/d[HO2] + J[349] += dqdci; // dwdot[H2NO]/d[HO2] + // d()/d[NH2OH] + dqdci = +k_f * sc[10]; + J[649] += dqdci; // dwdot[H2O2]/d[NH2OH] + J[650] -= dqdci; // dwdot[HO2]/d[NH2OH] + J[660] -= dqdci; // dwdot[NH2OH]/d[NH2OH] + J[669] += dqdci; // dwdot[H2NO]/d[NH2OH] + // d()/d[H2NO] + dqdci = -k_r * sc[9]; + J[937] += dqdci; // dwdot[H2O2]/d[H2NO] + J[938] -= dqdci; // dwdot[HO2]/d[H2NO] + J[948] -= dqdci; // dwdot[NH2OH]/d[H2NO] + J[957] += dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[1001] += dqdT; // dwdot[H2O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1021] += dqdT; // dwdot[H2NO]/dT + + // reaction 61: HNOH + O2 <=> HNO + HO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[5] * sc[21]; + k_f = 3000000 * exp(-(12580.416645118) * invT); + dlnkfdT = (12580.416645118) * invT2; + // reverse + phi_r = sc[10] * sc[14]; + Kc = exp(g_RT[5] - g_RT[10] - g_RT[14] + g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[5] + h_RT[21]) + (h_RT[10] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] -= q; // O2 + wdot[10] += q; // HO2 + wdot[14] += q; // HNO + wdot[21] -= q; // HNOH + // d()/d[O2] + dqdci = +k_f * sc[21]; + J[165] -= dqdci; // dwdot[O2]/d[O2] + J[170] += dqdci; // dwdot[HO2]/d[O2] + J[174] += dqdci; // dwdot[HNO]/d[O2] + J[181] -= dqdci; // dwdot[HNOH]/d[O2] + // d()/d[HO2] + dqdci = -k_r * sc[14]; + J[325] -= dqdci; // dwdot[O2]/d[HO2] + J[330] += dqdci; // dwdot[HO2]/d[HO2] + J[334] += dqdci; // dwdot[HNO]/d[HO2] + J[341] -= dqdci; // dwdot[HNOH]/d[HO2] + // d()/d[HNO] + dqdci = -k_r * sc[10]; + J[453] -= dqdci; // dwdot[O2]/d[HNO] + J[458] += dqdci; // dwdot[HO2]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[469] -= dqdci; // dwdot[HNOH]/d[HNO] + // d()/d[HNOH] + dqdci = +k_f * sc[5]; + J[677] -= dqdci; // dwdot[O2]/d[HNOH] + J[682] += dqdci; // dwdot[HO2]/d[HNOH] + J[686] += dqdci; // dwdot[HNO]/d[HNOH] + J[693] -= dqdci; // dwdot[HNOH]/d[HNOH] + // d()/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + + // reaction 62: H + HNOH <=> NH2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[21]; + k_f = 40000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[8] * sc[28]; + Kc = exp(g_RT[4] - g_RT[8] + g_RT[21] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[21]) + (h_RT[8] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] -= q; // H + wdot[8] += q; // OH + wdot[21] -= q; // HNOH + wdot[28] += q; // NH2 + // d()/d[H] + dqdci = +k_f * sc[21]; + J[132] -= dqdci; // dwdot[H]/d[H] + J[136] += dqdci; // dwdot[OH]/d[H] + J[149] -= dqdci; // dwdot[HNOH]/d[H] + J[156] += dqdci; // dwdot[NH2]/d[H] + // d()/d[OH] + dqdci = -k_r * sc[28]; + J[260] -= dqdci; // dwdot[H]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[277] -= dqdci; // dwdot[HNOH]/d[OH] + J[284] += dqdci; // dwdot[NH2]/d[OH] + // d()/d[HNOH] + dqdci = +k_f * sc[4]; + J[676] -= dqdci; // dwdot[H]/d[HNOH] + J[680] += dqdci; // dwdot[OH]/d[HNOH] + J[693] -= dqdci; // dwdot[HNOH]/d[HNOH] + J[700] += dqdci; // dwdot[NH2]/d[HNOH] + // d()/d[NH2] + dqdci = -k_r * sc[8]; + J[900] -= dqdci; // dwdot[H]/d[NH2] + J[904] += dqdci; // dwdot[OH]/d[NH2] + J[917] -= dqdci; // dwdot[HNOH]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 63: H + HNOH <=> H2 + HNO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[21]; + k_f = 480 * exp(1.5 * logT - (190.215899674184) * invT); + dlnkfdT = 1.5 * invT + (190.215899674184) * invT2; + // reverse + phi_r = sc[3] * sc[14]; + Kc = exp(-g_RT[3] + g_RT[4] - g_RT[14] + g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[21]) + (h_RT[3] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[14] += q; // HNO + wdot[21] -= q; // HNOH + // d()/d[H2] + dqdci = -k_r * sc[14]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[110] += dqdci; // dwdot[HNO]/d[H2] + J[117] -= dqdci; // dwdot[HNOH]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[21]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[142] += dqdci; // dwdot[HNO]/d[H] + J[149] -= dqdci; // dwdot[HNOH]/d[H] + // d()/d[HNO] + dqdci = -k_r * sc[3]; + J[451] += dqdci; // dwdot[H2]/d[HNO] + J[452] -= dqdci; // dwdot[H]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[469] -= dqdci; // dwdot[HNOH]/d[HNO] + // d()/d[HNOH] + dqdci = +k_f * sc[4]; + J[675] += dqdci; // dwdot[H2]/d[HNOH] + J[676] -= dqdci; // dwdot[H]/d[HNOH] + J[686] += dqdci; // dwdot[HNO]/d[HNOH] + J[693] -= dqdci; // dwdot[HNOH]/d[HNOH] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + + // reaction 64: HNOH + O <=> HNO + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[21]; + k_f = 70000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[8] * sc[14]; + Kc = exp(g_RT[6] - g_RT[8] - g_RT[14] + g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[21]) + (h_RT[8] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[14] += q; // HNO + wdot[21] -= q; // HNOH + // d()/d[O] + dqdci = +k_f * sc[21]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[206] += dqdci; // dwdot[HNO]/d[O] + J[213] -= dqdci; // dwdot[HNOH]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[14]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[270] += dqdci; // dwdot[HNO]/d[OH] + J[277] -= dqdci; // dwdot[HNOH]/d[OH] + // d()/d[HNO] + dqdci = -k_r * sc[8]; + J[454] -= dqdci; // dwdot[O]/d[HNO] + J[456] += dqdci; // dwdot[OH]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[469] -= dqdci; // dwdot[HNOH]/d[HNO] + // d()/d[HNOH] + dqdci = +k_f * sc[6]; + J[678] -= dqdci; // dwdot[O]/d[HNOH] + J[680] += dqdci; // dwdot[OH]/d[HNOH] + J[686] += dqdci; // dwdot[HNO]/d[HNOH] + J[693] -= dqdci; // dwdot[HNOH]/d[HNOH] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + + // reaction 65: HNOH + O <=> HNO + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[21]; + k_f = 330 * exp(1.5 * logT - (-180.15156635809) * invT); + dlnkfdT = 1.5 * invT + (-180.15156635809) * invT2; + // reverse + phi_r = sc[8] * sc[14]; + Kc = exp(g_RT[6] - g_RT[8] - g_RT[14] + g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[21]) + (h_RT[8] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[14] += q; // HNO + wdot[21] -= q; // HNOH + // d()/d[O] + dqdci = +k_f * sc[21]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[206] += dqdci; // dwdot[HNO]/d[O] + J[213] -= dqdci; // dwdot[HNOH]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[14]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[270] += dqdci; // dwdot[HNO]/d[OH] + J[277] -= dqdci; // dwdot[HNOH]/d[OH] + // d()/d[HNO] + dqdci = -k_r * sc[8]; + J[454] -= dqdci; // dwdot[O]/d[HNO] + J[456] += dqdci; // dwdot[OH]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[469] -= dqdci; // dwdot[HNOH]/d[HNO] + // d()/d[HNOH] + dqdci = +k_f * sc[6]; + J[678] -= dqdci; // dwdot[O]/d[HNOH] + J[680] += dqdci; // dwdot[OH]/d[HNOH] + J[686] += dqdci; // dwdot[HNO]/d[HNOH] + J[693] -= dqdci; // dwdot[HNOH]/d[HNOH] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + + // reaction 66: HNOH + OH <=> H2O + HNO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[21]; + k_f = 2.4 * exp(2 * logT - (-599.834265639226) * invT); + dlnkfdT = 2 * invT + (-599.834265639226) * invT2; + // reverse + phi_r = sc[7] * sc[14]; + Kc = exp(-g_RT[7] + g_RT[8] - g_RT[14] + g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[21]) + (h_RT[7] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[14] += q; // HNO + wdot[21] -= q; // HNOH + // d()/d[H2O] + dqdci = -k_r * sc[14]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[238] += dqdci; // dwdot[HNO]/d[H2O] + J[245] -= dqdci; // dwdot[HNOH]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[21]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[270] += dqdci; // dwdot[HNO]/d[OH] + J[277] -= dqdci; // dwdot[HNOH]/d[OH] + // d()/d[HNO] + dqdci = -k_r * sc[7]; + J[455] += dqdci; // dwdot[H2O]/d[HNO] + J[456] -= dqdci; // dwdot[OH]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[469] -= dqdci; // dwdot[HNOH]/d[HNO] + // d()/d[HNOH] + dqdci = +k_f * sc[8]; + J[679] += dqdci; // dwdot[H2O]/d[HNOH] + J[680] -= dqdci; // dwdot[OH]/d[HNOH] + J[686] += dqdci; // dwdot[HNO]/d[HNOH] + J[693] -= dqdci; // dwdot[HNOH]/d[HNOH] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + + // reaction 67: HNOH + HO2 <=> H2O2 + HNO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[21]; + k_f = 0.029 * exp(2.69 * logT - (-805.146665287552) * invT); + dlnkfdT = 2.69 * invT + (-805.146665287552) * invT2; + // reverse + phi_r = sc[9] * sc[14]; + Kc = exp(-g_RT[9] + g_RT[10] - g_RT[14] + g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[21]) + (h_RT[9] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[9] += q; // H2O2 + wdot[10] -= q; // HO2 + wdot[14] += q; // HNO + wdot[21] -= q; // HNOH + // d()/d[H2O2] + dqdci = -k_r * sc[14]; + J[297] += dqdci; // dwdot[H2O2]/d[H2O2] + J[298] -= dqdci; // dwdot[HO2]/d[H2O2] + J[302] += dqdci; // dwdot[HNO]/d[H2O2] + J[309] -= dqdci; // dwdot[HNOH]/d[H2O2] + // d()/d[HO2] + dqdci = +k_f * sc[21]; + J[329] += dqdci; // dwdot[H2O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[334] += dqdci; // dwdot[HNO]/d[HO2] + J[341] -= dqdci; // dwdot[HNOH]/d[HO2] + // d()/d[HNO] + dqdci = -k_r * sc[9]; + J[457] += dqdci; // dwdot[H2O2]/d[HNO] + J[458] -= dqdci; // dwdot[HO2]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[469] -= dqdci; // dwdot[HNOH]/d[HNO] + // d()/d[HNOH] + dqdci = +k_f * sc[10]; + J[681] += dqdci; // dwdot[H2O2]/d[HNOH] + J[682] -= dqdci; // dwdot[HO2]/d[HNOH] + J[686] += dqdci; // dwdot[HNO]/d[HNOH] + J[693] -= dqdci; // dwdot[HNOH]/d[HNOH] + // d()/dT + J[1001] += dqdT; // dwdot[H2O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + + // reaction 68: HNOH + HO2 <=> NH2OH + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[21]; + k_f = 0.029 * exp(2.69 * logT - (-805.146665287552) * invT); + dlnkfdT = 2.69 * invT + (-805.146665287552) * invT2; + // reverse + phi_r = sc[5] * sc[20]; + Kc = exp(-g_RT[5] + g_RT[10] - g_RT[20] + g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[21]) + (h_RT[5] + h_RT[20])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[10] -= q; // HO2 + wdot[20] += q; // NH2OH + wdot[21] -= q; // HNOH + // d()/d[O2] + dqdci = -k_r * sc[20]; + J[165] += dqdci; // dwdot[O2]/d[O2] + J[170] -= dqdci; // dwdot[HO2]/d[O2] + J[180] += dqdci; // dwdot[NH2OH]/d[O2] + J[181] -= dqdci; // dwdot[HNOH]/d[O2] + // d()/d[HO2] + dqdci = +k_f * sc[21]; + J[325] += dqdci; // dwdot[O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[340] += dqdci; // dwdot[NH2OH]/d[HO2] + J[341] -= dqdci; // dwdot[HNOH]/d[HO2] + // d()/d[NH2OH] + dqdci = -k_r * sc[5]; + J[645] += dqdci; // dwdot[O2]/d[NH2OH] + J[650] -= dqdci; // dwdot[HO2]/d[NH2OH] + J[660] += dqdci; // dwdot[NH2OH]/d[NH2OH] + J[661] -= dqdci; // dwdot[HNOH]/d[NH2OH] + // d()/d[HNOH] + dqdci = +k_f * sc[10]; + J[677] += dqdci; // dwdot[O2]/d[HNOH] + J[682] -= dqdci; // dwdot[HO2]/d[HNOH] + J[692] += dqdci; // dwdot[NH2OH]/d[HNOH] + J[693] -= dqdci; // dwdot[HNOH]/d[HNOH] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1012] += dqdT; // dwdot[NH2OH]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + + // reaction 69: HNOH + NH2 <=> HNO + NH3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[21] * sc[28]; + k_f = 1.8 * exp(1.94 * logT - (-579.705599007037) * invT); + dlnkfdT = 1.94 * invT + (-579.705599007037) * invT2; + // reverse + phi_r = sc[14] * sc[22]; + Kc = exp(-g_RT[14] + g_RT[21] - g_RT[22] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[21] + h_RT[28]) + (h_RT[14] + h_RT[22])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[14] += q; // HNO + wdot[21] -= q; // HNOH + wdot[22] += q; // NH3 + wdot[28] -= q; // NH2 + // d()/d[HNO] + dqdci = -k_r * sc[22]; + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[469] -= dqdci; // dwdot[HNOH]/d[HNO] + J[470] += dqdci; // dwdot[NH3]/d[HNO] + J[476] -= dqdci; // dwdot[NH2]/d[HNO] + // d()/d[HNOH] + dqdci = +k_f * sc[28]; + J[686] += dqdci; // dwdot[HNO]/d[HNOH] + J[693] -= dqdci; // dwdot[HNOH]/d[HNOH] + J[694] += dqdci; // dwdot[NH3]/d[HNOH] + J[700] -= dqdci; // dwdot[NH2]/d[HNOH] + // d()/d[NH3] + dqdci = -k_r * sc[14]; + J[718] += dqdci; // dwdot[HNO]/d[NH3] + J[725] -= dqdci; // dwdot[HNOH]/d[NH3] + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NH2] + dqdci = +k_f * sc[21]; + J[910] += dqdci; // dwdot[HNO]/d[NH2] + J[917] -= dqdci; // dwdot[HNOH]/d[NH2] + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 70: HNOH + NH2 <=> N2H3 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[21] * sc[28]; + k_f = 6.7 * exp(1.82 * logT - (359.950881050116) * invT); + dlnkfdT = 1.82 * invT + (359.950881050116) * invT2; + // reverse + phi_r = sc[8] * sc[30]; + Kc = exp(-g_RT[8] + g_RT[21] + g_RT[28] - g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[21] + h_RT[28]) + (h_RT[8] + h_RT[30])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[8] += q; // OH + wdot[21] -= q; // HNOH + wdot[28] -= q; // NH2 + wdot[30] += q; // N2H3 + // d()/d[OH] + dqdci = -k_r * sc[30]; + J[264] += dqdci; // dwdot[OH]/d[OH] + J[277] -= dqdci; // dwdot[HNOH]/d[OH] + J[284] -= dqdci; // dwdot[NH2]/d[OH] + J[286] += dqdci; // dwdot[N2H3]/d[OH] + // d()/d[HNOH] + dqdci = +k_f * sc[28]; + J[680] += dqdci; // dwdot[OH]/d[HNOH] + J[693] -= dqdci; // dwdot[HNOH]/d[HNOH] + J[700] -= dqdci; // dwdot[NH2]/d[HNOH] + J[702] += dqdci; // dwdot[N2H3]/d[HNOH] + // d()/d[NH2] + dqdci = +k_f * sc[21]; + J[904] += dqdci; // dwdot[OH]/d[NH2] + J[917] -= dqdci; // dwdot[HNOH]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + J[926] += dqdci; // dwdot[N2H3]/d[NH2] + // d()/d[N2H3] + dqdci = -k_r * sc[8]; + J[968] += dqdci; // dwdot[OH]/d[N2H3] + J[981] -= dqdci; // dwdot[HNOH]/d[N2H3] + J[988] -= dqdci; // dwdot[NH2]/d[N2H3] + J[990] += dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + J[1022] += dqdT; // dwdot[N2H3]/dT + + // reaction 71: HNOH + NH2 <=> H2NN + H2O + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[21] * sc[28]; + k_f = 46000000000000 * exp(-1.94 * logT - (969.899801672017) * invT); + dlnkfdT = -1.94 * invT + (969.899801672017) * invT2; + // reverse + phi_r = sc[7] * sc[19]; + Kc = exp(-g_RT[7] - g_RT[19] + g_RT[21] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[21] + h_RT[28]) + (h_RT[7] + h_RT[19])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[19] += q; // H2NN + wdot[21] -= q; // HNOH + wdot[28] -= q; // NH2 + // d()/d[H2O] + dqdci = -k_r * sc[19]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[243] += dqdci; // dwdot[H2NN]/d[H2O] + J[245] -= dqdci; // dwdot[HNOH]/d[H2O] + J[252] -= dqdci; // dwdot[NH2]/d[H2O] + // d()/d[H2NN] + dqdci = -k_r * sc[7]; + J[615] += dqdci; // dwdot[H2O]/d[H2NN] + J[627] += dqdci; // dwdot[H2NN]/d[H2NN] + J[629] -= dqdci; // dwdot[HNOH]/d[H2NN] + J[636] -= dqdci; // dwdot[NH2]/d[H2NN] + // d()/d[HNOH] + dqdci = +k_f * sc[28]; + J[679] += dqdci; // dwdot[H2O]/d[HNOH] + J[691] += dqdci; // dwdot[H2NN]/d[HNOH] + J[693] -= dqdci; // dwdot[HNOH]/d[HNOH] + J[700] -= dqdci; // dwdot[NH2]/d[HNOH] + // d()/d[NH2] + dqdci = +k_f * sc[21]; + J[903] += dqdci; // dwdot[H2O]/d[NH2] + J[915] += dqdci; // dwdot[H2NN]/d[NH2] + J[917] -= dqdci; // dwdot[HNOH]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1011] += dqdT; // dwdot[H2NN]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 72: HNOH + NO2 <=> HNO + HONO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[13] * sc[21]; + k_f = 600000 * exp(-(1006.43333160944) * invT); + dlnkfdT = (1006.43333160944) * invT2; + // reverse + phi_r = sc[14] * sc[16]; + Kc = exp(g_RT[13] - g_RT[14] - g_RT[16] + g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[13] + h_RT[21]) + (h_RT[14] + h_RT[16])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[13] -= q; // NO2 + wdot[14] += q; // HNO + wdot[16] += q; // HONO + wdot[21] -= q; // HNOH + // d()/d[NO2] + dqdci = +k_f * sc[21]; + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[430] += dqdci; // dwdot[HNO]/d[NO2] + J[432] += dqdci; // dwdot[HONO]/d[NO2] + J[437] -= dqdci; // dwdot[HNOH]/d[NO2] + // d()/d[HNO] + dqdci = -k_r * sc[16]; + J[461] -= dqdci; // dwdot[NO2]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[464] += dqdci; // dwdot[HONO]/d[HNO] + J[469] -= dqdci; // dwdot[HNOH]/d[HNO] + // d()/d[HONO] + dqdci = -k_r * sc[14]; + J[525] -= dqdci; // dwdot[NO2]/d[HONO] + J[526] += dqdci; // dwdot[HNO]/d[HONO] + J[528] += dqdci; // dwdot[HONO]/d[HONO] + J[533] -= dqdci; // dwdot[HNOH]/d[HONO] + // d()/d[HNOH] + dqdci = +k_f * sc[13]; + J[685] -= dqdci; // dwdot[NO2]/d[HNOH] + J[686] += dqdci; // dwdot[HNO]/d[HNOH] + J[688] += dqdci; // dwdot[HONO]/d[HNOH] + J[693] -= dqdci; // dwdot[HNOH]/d[HNOH] + // d()/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1008] += dqdT; // dwdot[HONO]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + + // reaction 73: NH2 + NO2 <=> H2NO + NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[13] * sc[28]; + k_f = 860000 * exp(0.11 * logT - (-596.814965644398) * invT); + dlnkfdT = 0.11 * invT + (-596.814965644398) * invT2; + // reverse + phi_r = sc[11] * sc[29]; + Kc = exp(-g_RT[11] + g_RT[13] + g_RT[28] - g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[13] + h_RT[28]) + (h_RT[11] + h_RT[29])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[11] += q; // NO + wdot[13] -= q; // NO2 + wdot[28] -= q; // NH2 + wdot[29] += q; // H2NO + // d()/d[NO] + dqdci = -k_r * sc[29]; + J[363] += dqdci; // dwdot[NO]/d[NO] + J[365] -= dqdci; // dwdot[NO2]/d[NO] + J[380] -= dqdci; // dwdot[NH2]/d[NO] + J[381] += dqdci; // dwdot[H2NO]/d[NO] + // d()/d[NO2] + dqdci = +k_f * sc[28]; + J[427] += dqdci; // dwdot[NO]/d[NO2] + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[444] -= dqdci; // dwdot[NH2]/d[NO2] + J[445] += dqdci; // dwdot[H2NO]/d[NO2] + // d()/d[NH2] + dqdci = +k_f * sc[13]; + J[907] += dqdci; // dwdot[NO]/d[NH2] + J[909] -= dqdci; // dwdot[NO2]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + J[925] += dqdci; // dwdot[H2NO]/d[NH2] + // d()/d[H2NO] + dqdci = -k_r * sc[11]; + J[939] += dqdci; // dwdot[NO]/d[H2NO] + J[941] -= dqdci; // dwdot[NO2]/d[H2NO] + J[956] -= dqdci; // dwdot[NH2]/d[H2NO] + J[957] += dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + J[1021] += dqdT; // dwdot[H2NO]/dT + + // reaction 74: NH2 + NO2 <=> H2O + N2O + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[13] * sc[28]; + k_f = 220000 * exp(0.11 * logT - (-596.814965644398) * invT); + dlnkfdT = 0.11 * invT + (-596.814965644398) * invT2; + // reverse + phi_r = sc[7] * sc[12]; + Kc = exp(-g_RT[7] - g_RT[12] + g_RT[13] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[13] + h_RT[28]) + (h_RT[7] + h_RT[12])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[12] += q; // N2O + wdot[13] -= q; // NO2 + wdot[28] -= q; // NH2 + // d()/d[H2O] + dqdci = -k_r * sc[12]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[236] += dqdci; // dwdot[N2O]/d[H2O] + J[237] -= dqdci; // dwdot[NO2]/d[H2O] + J[252] -= dqdci; // dwdot[NH2]/d[H2O] + // d()/d[N2O] + dqdci = -k_r * sc[7]; + J[391] += dqdci; // dwdot[H2O]/d[N2O] + J[396] += dqdci; // dwdot[N2O]/d[N2O] + J[397] -= dqdci; // dwdot[NO2]/d[N2O] + J[412] -= dqdci; // dwdot[NH2]/d[N2O] + // d()/d[NO2] + dqdci = +k_f * sc[28]; + J[423] += dqdci; // dwdot[H2O]/d[NO2] + J[428] += dqdci; // dwdot[N2O]/d[NO2] + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[444] -= dqdci; // dwdot[NH2]/d[NO2] + // d()/d[NH2] + dqdci = +k_f * sc[13]; + J[903] += dqdci; // dwdot[H2O]/d[NH2] + J[908] += dqdci; // dwdot[N2O]/d[NH2] + J[909] -= dqdci; // dwdot[NO2]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1004] += dqdT; // dwdot[N2O]/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 75: NH2 + NO <=> H2O + N2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[11] * sc[28]; + k_f = 26000000000000 * exp(-2.369 * logT - (437.798499250106) * invT); + dlnkfdT = -2.369 * invT + (437.798499250106) * invT2; + // reverse + phi_r = sc[1] * sc[7]; + Kc = exp(-g_RT[1] - g_RT[7] + g_RT[11] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[11] + h_RT[28]) + (h_RT[1] + h_RT[7])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[7] += q; // H2O + wdot[11] -= q; // NO + wdot[28] -= q; // NH2 + // d()/d[N2] + dqdci = -k_r * sc[7]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[39] += dqdci; // dwdot[H2O]/d[N2] + J[43] -= dqdci; // dwdot[NO]/d[N2] + J[60] -= dqdci; // dwdot[NH2]/d[N2] + // d()/d[H2O] + dqdci = -k_r * sc[1]; + J[225] += dqdci; // dwdot[N2]/d[H2O] + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[235] -= dqdci; // dwdot[NO]/d[H2O] + J[252] -= dqdci; // dwdot[NH2]/d[H2O] + // d()/d[NO] + dqdci = +k_f * sc[28]; + J[353] += dqdci; // dwdot[N2]/d[NO] + J[359] += dqdci; // dwdot[H2O]/d[NO] + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[380] -= dqdci; // dwdot[NH2]/d[NO] + // d()/d[NH2] + dqdci = +k_f * sc[11]; + J[897] += dqdci; // dwdot[N2]/d[NH2] + J[903] += dqdci; // dwdot[H2O]/d[NH2] + J[907] -= dqdci; // dwdot[NO]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 76: NH2 + NO <=> NNH + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[11] * sc[28]; + k_f = 43000 * exp(0.294 * logT - (-435.785632586887) * invT); + dlnkfdT = 0.294 * invT + (-435.785632586887) * invT2; + // reverse + phi_r = sc[8] * sc[27]; + Kc = exp(-g_RT[8] + g_RT[11] - g_RT[27] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[11] + h_RT[28]) + (h_RT[8] + h_RT[27])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[8] += q; // OH + wdot[11] -= q; // NO + wdot[27] += q; // NNH + wdot[28] -= q; // NH2 + // d()/d[OH] + dqdci = -k_r * sc[27]; + J[264] += dqdci; // dwdot[OH]/d[OH] + J[267] -= dqdci; // dwdot[NO]/d[OH] + J[283] += dqdci; // dwdot[NNH]/d[OH] + J[284] -= dqdci; // dwdot[NH2]/d[OH] + // d()/d[NO] + dqdci = +k_f * sc[28]; + J[360] += dqdci; // dwdot[OH]/d[NO] + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[379] += dqdci; // dwdot[NNH]/d[NO] + J[380] -= dqdci; // dwdot[NH2]/d[NO] + // d()/d[NNH] + dqdci = -k_r * sc[8]; + J[872] += dqdci; // dwdot[OH]/d[NNH] + J[875] -= dqdci; // dwdot[NO]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + J[892] -= dqdci; // dwdot[NH2]/d[NNH] + // d()/d[NH2] + dqdci = +k_f * sc[11]; + J[904] += dqdci; // dwdot[OH]/d[NH2] + J[907] -= dqdci; // dwdot[NO]/d[NH2] + J[923] += dqdci; // dwdot[NNH]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 77: H + NH <=> H2 + N + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[26]; + k_f = 30100000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[3] * sc[24]; + Kc = exp(-g_RT[3] + g_RT[4] - g_RT[24] + g_RT[26]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[26]) + (h_RT[3] + h_RT[24])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[24] += q; // N + wdot[26] -= q; // NH + // d()/d[H2] + dqdci = -k_r * sc[24]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[120] += dqdci; // dwdot[N]/d[H2] + J[122] -= dqdci; // dwdot[NH]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[26]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[152] += dqdci; // dwdot[N]/d[H] + J[154] -= dqdci; // dwdot[NH]/d[H] + // d()/d[N] + dqdci = -k_r * sc[3]; + J[771] += dqdci; // dwdot[H2]/d[N] + J[772] -= dqdci; // dwdot[H]/d[N] + J[792] += dqdci; // dwdot[N]/d[N] + J[794] -= dqdci; // dwdot[NH]/d[N] + // d()/d[NH] + dqdci = +k_f * sc[4]; + J[835] += dqdci; // dwdot[H2]/d[NH] + J[836] -= dqdci; // dwdot[H]/d[NH] + J[856] += dqdci; // dwdot[N]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1016] += dqdT; // dwdot[N]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + + // reaction 78: NH + O <=> H + NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[26]; + k_f = 30000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[4] * sc[11]; + Kc = exp(-g_RT[4] + g_RT[6] - g_RT[11] + g_RT[26]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[26]) + (h_RT[4] + h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[6] -= q; // O + wdot[11] += q; // NO + wdot[26] -= q; // NH + // d()/d[H] + dqdci = -k_r * sc[11]; + J[132] += dqdci; // dwdot[H]/d[H] + J[134] -= dqdci; // dwdot[O]/d[H] + J[139] += dqdci; // dwdot[NO]/d[H] + J[154] -= dqdci; // dwdot[NH]/d[H] + // d()/d[O] + dqdci = +k_f * sc[26]; + J[196] += dqdci; // dwdot[H]/d[O] + J[198] -= dqdci; // dwdot[O]/d[O] + J[203] += dqdci; // dwdot[NO]/d[O] + J[218] -= dqdci; // dwdot[NH]/d[O] + // d()/d[NO] + dqdci = -k_r * sc[4]; + J[356] += dqdci; // dwdot[H]/d[NO] + J[358] -= dqdci; // dwdot[O]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[378] -= dqdci; // dwdot[NH]/d[NO] + // d()/d[NH] + dqdci = +k_f * sc[6]; + J[836] += dqdci; // dwdot[H]/d[NH] + J[838] -= dqdci; // dwdot[O]/d[NH] + J[843] += dqdci; // dwdot[NO]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + + // reaction 79: NH + OH <=> H + HNO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[26]; + k_f = 20000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[4] * sc[14]; + Kc = exp(-g_RT[4] + g_RT[8] - g_RT[14] + g_RT[26]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[26]) + (h_RT[4] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[8] -= q; // OH + wdot[14] += q; // HNO + wdot[26] -= q; // NH + // d()/d[H] + dqdci = -k_r * sc[14]; + J[132] += dqdci; // dwdot[H]/d[H] + J[136] -= dqdci; // dwdot[OH]/d[H] + J[142] += dqdci; // dwdot[HNO]/d[H] + J[154] -= dqdci; // dwdot[NH]/d[H] + // d()/d[OH] + dqdci = +k_f * sc[26]; + J[260] += dqdci; // dwdot[H]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[270] += dqdci; // dwdot[HNO]/d[OH] + J[282] -= dqdci; // dwdot[NH]/d[OH] + // d()/d[HNO] + dqdci = -k_r * sc[4]; + J[452] += dqdci; // dwdot[H]/d[HNO] + J[456] -= dqdci; // dwdot[OH]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[474] -= dqdci; // dwdot[NH]/d[HNO] + // d()/d[NH] + dqdci = +k_f * sc[8]; + J[836] += dqdci; // dwdot[H]/d[NH] + J[840] -= dqdci; // dwdot[OH]/d[NH] + J[846] += dqdci; // dwdot[HNO]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + + // reaction 80: NH + OH <=> H2O + N + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[26]; + k_f = 2000 * exp(1.2 * logT); + dlnkfdT = 1.2 * invT; + // reverse + phi_r = sc[7] * sc[24]; + Kc = exp(-g_RT[7] + g_RT[8] - g_RT[24] + g_RT[26]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[26]) + (h_RT[7] + h_RT[24])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[24] += q; // N + wdot[26] -= q; // NH + // d()/d[H2O] + dqdci = -k_r * sc[24]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[248] += dqdci; // dwdot[N]/d[H2O] + J[250] -= dqdci; // dwdot[NH]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[26]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[280] += dqdci; // dwdot[N]/d[OH] + J[282] -= dqdci; // dwdot[NH]/d[OH] + // d()/d[N] + dqdci = -k_r * sc[7]; + J[775] += dqdci; // dwdot[H2O]/d[N] + J[776] -= dqdci; // dwdot[OH]/d[N] + J[792] += dqdci; // dwdot[N]/d[N] + J[794] -= dqdci; // dwdot[NH]/d[N] + // d()/d[NH] + dqdci = +k_f * sc[8]; + J[839] += dqdci; // dwdot[H2O]/d[NH] + J[840] -= dqdci; // dwdot[OH]/d[NH] + J[856] += dqdci; // dwdot[N]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1016] += dqdT; // dwdot[N]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + + // reaction 81: NH + O2 <=> HNO + O + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[5] * sc[26]; + k_f = 405000 * exp(0.09 * logT - (5369.32182413636) * invT); + dlnkfdT = 0.09 * invT + (5369.32182413636) * invT2; + // reverse + phi_r = sc[6] * sc[14]; + Kc = exp(g_RT[5] - g_RT[6] - g_RT[14] + g_RT[26]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[5] + h_RT[26]) + (h_RT[6] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] -= q; // O2 + wdot[6] += q; // O + wdot[14] += q; // HNO + wdot[26] -= q; // NH + // d()/d[O2] + dqdci = +k_f * sc[26]; + J[165] -= dqdci; // dwdot[O2]/d[O2] + J[166] += dqdci; // dwdot[O]/d[O2] + J[174] += dqdci; // dwdot[HNO]/d[O2] + J[186] -= dqdci; // dwdot[NH]/d[O2] + // d()/d[O] + dqdci = -k_r * sc[14]; + J[197] -= dqdci; // dwdot[O2]/d[O] + J[198] += dqdci; // dwdot[O]/d[O] + J[206] += dqdci; // dwdot[HNO]/d[O] + J[218] -= dqdci; // dwdot[NH]/d[O] + // d()/d[HNO] + dqdci = -k_r * sc[6]; + J[453] -= dqdci; // dwdot[O2]/d[HNO] + J[454] += dqdci; // dwdot[O]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[474] -= dqdci; // dwdot[NH]/d[HNO] + // d()/d[NH] + dqdci = +k_f * sc[5]; + J[837] -= dqdci; // dwdot[O2]/d[NH] + J[838] += dqdci; // dwdot[O]/d[NH] + J[846] += dqdci; // dwdot[HNO]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[998] += dqdT; // dwdot[O]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + + // reaction 82: NH + O2 <=> NO + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[5] * sc[26]; + k_f = 2010000000 * exp(-1.38 * logT - (2853.23849511276) * invT); + dlnkfdT = -1.38 * invT + (2853.23849511276) * invT2; + // reverse + phi_r = sc[8] * sc[11]; + Kc = exp(g_RT[5] - g_RT[8] - g_RT[11] + g_RT[26]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[5] + h_RT[26]) + (h_RT[8] + h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] -= q; // O2 + wdot[8] += q; // OH + wdot[11] += q; // NO + wdot[26] -= q; // NH + // d()/d[O2] + dqdci = +k_f * sc[26]; + J[165] -= dqdci; // dwdot[O2]/d[O2] + J[168] += dqdci; // dwdot[OH]/d[O2] + J[171] += dqdci; // dwdot[NO]/d[O2] + J[186] -= dqdci; // dwdot[NH]/d[O2] + // d()/d[OH] + dqdci = -k_r * sc[11]; + J[261] -= dqdci; // dwdot[O2]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[267] += dqdci; // dwdot[NO]/d[OH] + J[282] -= dqdci; // dwdot[NH]/d[OH] + // d()/d[NO] + dqdci = -k_r * sc[8]; + J[357] -= dqdci; // dwdot[O2]/d[NO] + J[360] += dqdci; // dwdot[OH]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[378] -= dqdci; // dwdot[NH]/d[NO] + // d()/d[NH] + dqdci = +k_f * sc[5]; + J[837] -= dqdci; // dwdot[O2]/d[NH] + J[840] += dqdci; // dwdot[OH]/d[NH] + J[843] += dqdci; // dwdot[NO]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + + // reaction 83: N + NH <=> H + N2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[24] * sc[26]; + k_f = 641000 * exp(0.51 * logT - (10.0643333160944) * invT); + dlnkfdT = 0.51 * invT + (10.0643333160944) * invT2; + // reverse + phi_r = sc[1] * sc[4]; + Kc = exp(-g_RT[1] - g_RT[4] + g_RT[24] + g_RT[26]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[24] + h_RT[26]) + (h_RT[1] + h_RT[4])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[4] += q; // H + wdot[24] -= q; // N + wdot[26] -= q; // NH + // d()/d[N2] + dqdci = -k_r * sc[4]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[36] += dqdci; // dwdot[H]/d[N2] + J[56] -= dqdci; // dwdot[N]/d[N2] + J[58] -= dqdci; // dwdot[NH]/d[N2] + // d()/d[H] + dqdci = -k_r * sc[1]; + J[129] += dqdci; // dwdot[N2]/d[H] + J[132] += dqdci; // dwdot[H]/d[H] + J[152] -= dqdci; // dwdot[N]/d[H] + J[154] -= dqdci; // dwdot[NH]/d[H] + // d()/d[N] + dqdci = +k_f * sc[26]; + J[769] += dqdci; // dwdot[N2]/d[N] + J[772] += dqdci; // dwdot[H]/d[N] + J[792] -= dqdci; // dwdot[N]/d[N] + J[794] -= dqdci; // dwdot[NH]/d[N] + // d()/d[NH] + dqdci = +k_f * sc[24]; + J[833] += dqdci; // dwdot[N2]/d[NH] + J[836] += dqdci; // dwdot[H]/d[NH] + J[856] -= dqdci; // dwdot[N]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[996] += dqdT; // dwdot[H]/dT + J[1016] -= dqdT; // dwdot[N]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + + // reaction 84: NH + NO <=> H + N2O + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[11] * sc[26]; + k_f = 5328000 * exp(0.026 * logT - (-1456.25870917228) * invT); + dlnkfdT = 0.026 * invT + (-1456.25870917228) * invT2; + // reverse + phi_r = sc[4] * sc[12]; + Kc = exp(-g_RT[4] + g_RT[11] - g_RT[12] + g_RT[26]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[11] + h_RT[26]) + (h_RT[4] + h_RT[12])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[11] -= q; // NO + wdot[12] += q; // N2O + wdot[26] -= q; // NH + // d()/d[H] + dqdci = -k_r * sc[12]; + J[132] += dqdci; // dwdot[H]/d[H] + J[139] -= dqdci; // dwdot[NO]/d[H] + J[140] += dqdci; // dwdot[N2O]/d[H] + J[154] -= dqdci; // dwdot[NH]/d[H] + // d()/d[NO] + dqdci = +k_f * sc[26]; + J[356] += dqdci; // dwdot[H]/d[NO] + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[364] += dqdci; // dwdot[N2O]/d[NO] + J[378] -= dqdci; // dwdot[NH]/d[NO] + // d()/d[N2O] + dqdci = -k_r * sc[4]; + J[388] += dqdci; // dwdot[H]/d[N2O] + J[395] -= dqdci; // dwdot[NO]/d[N2O] + J[396] += dqdci; // dwdot[N2O]/d[N2O] + J[410] -= dqdci; // dwdot[NH]/d[N2O] + // d()/d[NH] + dqdci = +k_f * sc[11]; + J[836] += dqdci; // dwdot[H]/d[NH] + J[843] -= dqdci; // dwdot[NO]/d[NH] + J[844] += dqdci; // dwdot[N2O]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1004] += dqdT; // dwdot[N2O]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + + // reaction 85: NH + NO <=> N2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[11] * sc[26]; + k_f = 36350 * exp(0.361 * logT - (-1431.29916254836) * invT); + dlnkfdT = 0.361 * invT + (-1431.29916254836) * invT2; + // reverse + phi_r = sc[1] * sc[8]; + Kc = exp(-g_RT[1] - g_RT[8] + g_RT[11] + g_RT[26]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[11] + h_RT[26]) + (h_RT[1] + h_RT[8])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[8] += q; // OH + wdot[11] -= q; // NO + wdot[26] -= q; // NH + // d()/d[N2] + dqdci = -k_r * sc[8]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[40] += dqdci; // dwdot[OH]/d[N2] + J[43] -= dqdci; // dwdot[NO]/d[N2] + J[58] -= dqdci; // dwdot[NH]/d[N2] + // d()/d[OH] + dqdci = -k_r * sc[1]; + J[257] += dqdci; // dwdot[N2]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[267] -= dqdci; // dwdot[NO]/d[OH] + J[282] -= dqdci; // dwdot[NH]/d[OH] + // d()/d[NO] + dqdci = +k_f * sc[26]; + J[353] += dqdci; // dwdot[N2]/d[NO] + J[360] += dqdci; // dwdot[OH]/d[NO] + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[378] -= dqdci; // dwdot[NH]/d[NO] + // d()/d[NH] + dqdci = +k_f * sc[11]; + J[833] += dqdci; // dwdot[N2]/d[NH] + J[840] += dqdci; // dwdot[OH]/d[NH] + J[843] -= dqdci; // dwdot[NO]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + + // reaction 86: NH + NO2 <=> N2O + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[13] * sc[26]; + k_f = 4100000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[8] * sc[12]; + Kc = exp(-g_RT[8] - g_RT[12] + g_RT[13] + g_RT[26]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[13] + h_RT[26]) + (h_RT[8] + h_RT[12])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[8] += q; // OH + wdot[12] += q; // N2O + wdot[13] -= q; // NO2 + wdot[26] -= q; // NH + // d()/d[OH] + dqdci = -k_r * sc[12]; + J[264] += dqdci; // dwdot[OH]/d[OH] + J[268] += dqdci; // dwdot[N2O]/d[OH] + J[269] -= dqdci; // dwdot[NO2]/d[OH] + J[282] -= dqdci; // dwdot[NH]/d[OH] + // d()/d[N2O] + dqdci = -k_r * sc[8]; + J[392] += dqdci; // dwdot[OH]/d[N2O] + J[396] += dqdci; // dwdot[N2O]/d[N2O] + J[397] -= dqdci; // dwdot[NO2]/d[N2O] + J[410] -= dqdci; // dwdot[NH]/d[N2O] + // d()/d[NO2] + dqdci = +k_f * sc[26]; + J[424] += dqdci; // dwdot[OH]/d[NO2] + J[428] += dqdci; // dwdot[N2O]/d[NO2] + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[442] -= dqdci; // dwdot[NH]/d[NO2] + // d()/d[NH] + dqdci = +k_f * sc[13]; + J[840] += dqdci; // dwdot[OH]/d[NH] + J[844] += dqdci; // dwdot[N2O]/d[NH] + J[845] -= dqdci; // dwdot[NO2]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1004] += dqdT; // dwdot[N2O]/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + + // reaction 87: NH + NO2 <=> HNO + NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[13] * sc[26]; + k_f = 5900000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[11] * sc[14]; + Kc = exp(-g_RT[11] + g_RT[13] - g_RT[14] + g_RT[26]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[13] + h_RT[26]) + (h_RT[11] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[11] += q; // NO + wdot[13] -= q; // NO2 + wdot[14] += q; // HNO + wdot[26] -= q; // NH + // d()/d[NO] + dqdci = -k_r * sc[14]; + J[363] += dqdci; // dwdot[NO]/d[NO] + J[365] -= dqdci; // dwdot[NO2]/d[NO] + J[366] += dqdci; // dwdot[HNO]/d[NO] + J[378] -= dqdci; // dwdot[NH]/d[NO] + // d()/d[NO2] + dqdci = +k_f * sc[26]; + J[427] += dqdci; // dwdot[NO]/d[NO2] + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[430] += dqdci; // dwdot[HNO]/d[NO2] + J[442] -= dqdci; // dwdot[NH]/d[NO2] + // d()/d[HNO] + dqdci = -k_r * sc[11]; + J[459] += dqdci; // dwdot[NO]/d[HNO] + J[461] -= dqdci; // dwdot[NO2]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[474] -= dqdci; // dwdot[NH]/d[HNO] + // d()/d[NH] + dqdci = +k_f * sc[13]; + J[843] += dqdci; // dwdot[NO]/d[NH] + J[845] -= dqdci; // dwdot[NO2]/d[NH] + J[846] += dqdci; // dwdot[HNO]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + + // reaction 88: N + OH <=> H + NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[24]; + k_f = 28300000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[4] * sc[11]; + Kc = exp(-g_RT[4] + g_RT[8] - g_RT[11] + g_RT[24]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[24]) + (h_RT[4] + h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[8] -= q; // OH + wdot[11] += q; // NO + wdot[24] -= q; // N + // d()/d[H] + dqdci = -k_r * sc[11]; + J[132] += dqdci; // dwdot[H]/d[H] + J[136] -= dqdci; // dwdot[OH]/d[H] + J[139] += dqdci; // dwdot[NO]/d[H] + J[152] -= dqdci; // dwdot[N]/d[H] + // d()/d[OH] + dqdci = +k_f * sc[24]; + J[260] += dqdci; // dwdot[H]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[267] += dqdci; // dwdot[NO]/d[OH] + J[280] -= dqdci; // dwdot[N]/d[OH] + // d()/d[NO] + dqdci = -k_r * sc[4]; + J[356] += dqdci; // dwdot[H]/d[NO] + J[360] -= dqdci; // dwdot[OH]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[376] -= dqdci; // dwdot[N]/d[NO] + // d()/d[N] + dqdci = +k_f * sc[8]; + J[772] += dqdci; // dwdot[H]/d[N] + J[776] -= dqdci; // dwdot[OH]/d[N] + J[779] += dqdci; // dwdot[NO]/d[N] + J[792] -= dqdci; // dwdot[N]/d[N] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1016] -= dqdT; // dwdot[N]/dT + + // reaction 89: N + O2 <=> NO + O + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[5] * sc[24]; + k_f = 9027 * exp(1 * logT - (3270.90832773068) * invT); + dlnkfdT = 1 * invT + (3270.90832773068) * invT2; + // reverse + phi_r = sc[6] * sc[11]; + Kc = exp(g_RT[5] - g_RT[6] - g_RT[11] + g_RT[24]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[5] + h_RT[24]) + (h_RT[6] + h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] -= q; // O2 + wdot[6] += q; // O + wdot[11] += q; // NO + wdot[24] -= q; // N + // d()/d[O2] + dqdci = +k_f * sc[24]; + J[165] -= dqdci; // dwdot[O2]/d[O2] + J[166] += dqdci; // dwdot[O]/d[O2] + J[171] += dqdci; // dwdot[NO]/d[O2] + J[184] -= dqdci; // dwdot[N]/d[O2] + // d()/d[O] + dqdci = -k_r * sc[11]; + J[197] -= dqdci; // dwdot[O2]/d[O] + J[198] += dqdci; // dwdot[O]/d[O] + J[203] += dqdci; // dwdot[NO]/d[O] + J[216] -= dqdci; // dwdot[N]/d[O] + // d()/d[NO] + dqdci = -k_r * sc[6]; + J[357] -= dqdci; // dwdot[O2]/d[NO] + J[358] += dqdci; // dwdot[O]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[376] -= dqdci; // dwdot[N]/d[NO] + // d()/d[N] + dqdci = +k_f * sc[5]; + J[773] -= dqdci; // dwdot[O2]/d[N] + J[774] += dqdci; // dwdot[O]/d[N] + J[779] += dqdci; // dwdot[NO]/d[N] + J[792] -= dqdci; // dwdot[N]/d[N] + // d()/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[998] += dqdT; // dwdot[O]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1016] -= dqdT; // dwdot[N]/dT + + // reaction 90: N + NO <=> N2 + O + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[11] * sc[24]; + k_f = 42800000 * exp(-(790.05016531341) * invT); + dlnkfdT = (790.05016531341) * invT2; + // reverse + phi_r = sc[1] * sc[6]; + Kc = exp(-g_RT[1] - g_RT[6] + g_RT[11] + g_RT[24]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[11] + h_RT[24]) + (h_RT[1] + h_RT[6])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[6] += q; // O + wdot[11] -= q; // NO + wdot[24] -= q; // N + // d()/d[N2] + dqdci = -k_r * sc[6]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[38] += dqdci; // dwdot[O]/d[N2] + J[43] -= dqdci; // dwdot[NO]/d[N2] + J[56] -= dqdci; // dwdot[N]/d[N2] + // d()/d[O] + dqdci = -k_r * sc[1]; + J[193] += dqdci; // dwdot[N2]/d[O] + J[198] += dqdci; // dwdot[O]/d[O] + J[203] -= dqdci; // dwdot[NO]/d[O] + J[216] -= dqdci; // dwdot[N]/d[O] + // d()/d[NO] + dqdci = +k_f * sc[24]; + J[353] += dqdci; // dwdot[N2]/d[NO] + J[358] += dqdci; // dwdot[O]/d[NO] + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[376] -= dqdci; // dwdot[N]/d[NO] + // d()/d[N] + dqdci = +k_f * sc[11]; + J[769] += dqdci; // dwdot[N2]/d[N] + J[774] += dqdci; // dwdot[O]/d[N] + J[779] -= dqdci; // dwdot[NO]/d[N] + J[792] -= dqdci; // dwdot[N]/d[N] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[998] += dqdT; // dwdot[O]/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1016] -= dqdT; // dwdot[N]/dT + + // reaction 91: N2H4 <=> H2 + H2NN + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[23]; + k_f = 5.65145496101273e+39 * + exp(-8.3585749186206 * logT - (34882.1236135086) * invT); + dlnkfdT = -8.3585749186206 * invT + (34882.1236135086) * invT2; + // reverse + phi_r = sc[3] * sc[19]; + Kc = refC * exp(-g_RT[3] - g_RT[19] + g_RT[23]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[23]) + (h_RT[3] + h_RT[19]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[19] += q; // H2NN + wdot[23] -= q; // N2H4 + // d()/d[H2] + dqdci = -k_r * sc[19]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[115] += dqdci; // dwdot[H2NN]/d[H2] + J[119] -= dqdci; // dwdot[N2H4]/d[H2] + // d()/d[H2NN] + dqdci = -k_r * sc[3]; + J[611] += dqdci; // dwdot[H2]/d[H2NN] + J[627] += dqdci; // dwdot[H2NN]/d[H2NN] + J[631] -= dqdci; // dwdot[N2H4]/d[H2NN] + // d()/d[N2H4] + dqdci = +k_f; + J[739] += dqdci; // dwdot[H2]/d[N2H4] + J[755] += dqdci; // dwdot[H2NN]/d[N2H4] + J[759] -= dqdci; // dwdot[N2H4]/d[N2H4] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[1011] += dqdT; // dwdot[H2NN]/dT + J[1015] -= dqdT; // dwdot[N2H4]/dT + + // reaction 92: H + N2H4 <=> H2 + N2H3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[23]; + k_f = 960 * exp(1.5 * logT - (2434.71319416298) * invT); + dlnkfdT = 1.5 * invT + (2434.71319416298) * invT2; + // reverse + phi_r = sc[3] * sc[30]; + Kc = exp(-g_RT[3] + g_RT[4] + g_RT[23] - g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[23]) + (h_RT[3] + h_RT[30])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[23] -= q; // N2H4 + wdot[30] += q; // N2H3 + // d()/d[H2] + dqdci = -k_r * sc[30]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[119] -= dqdci; // dwdot[N2H4]/d[H2] + J[126] += dqdci; // dwdot[N2H3]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[23]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[151] -= dqdci; // dwdot[N2H4]/d[H] + J[158] += dqdci; // dwdot[N2H3]/d[H] + // d()/d[N2H4] + dqdci = +k_f * sc[4]; + J[739] += dqdci; // dwdot[H2]/d[N2H4] + J[740] -= dqdci; // dwdot[H]/d[N2H4] + J[759] -= dqdci; // dwdot[N2H4]/d[N2H4] + J[766] += dqdci; // dwdot[N2H3]/d[N2H4] + // d()/d[N2H3] + dqdci = -k_r * sc[3]; + J[963] += dqdci; // dwdot[H2]/d[N2H3] + J[964] -= dqdci; // dwdot[H]/d[N2H3] + J[983] -= dqdci; // dwdot[N2H4]/d[N2H3] + J[990] += dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1015] -= dqdT; // dwdot[N2H4]/dT + J[1022] += dqdT; // dwdot[N2H3]/dT + + // reaction 93: N2H4 + O <=> N2H3 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[23]; + k_f = 670 * exp(1.5 * logT - (1434.821679209) * invT); + dlnkfdT = 1.5 * invT + (1434.821679209) * invT2; + // reverse + phi_r = sc[8] * sc[30]; + Kc = exp(g_RT[6] - g_RT[8] + g_RT[23] - g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[23]) + (h_RT[8] + h_RT[30])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[23] -= q; // N2H4 + wdot[30] += q; // N2H3 + // d()/d[O] + dqdci = +k_f * sc[23]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[215] -= dqdci; // dwdot[N2H4]/d[O] + J[222] += dqdci; // dwdot[N2H3]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[30]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[279] -= dqdci; // dwdot[N2H4]/d[OH] + J[286] += dqdci; // dwdot[N2H3]/d[OH] + // d()/d[N2H4] + dqdci = +k_f * sc[6]; + J[742] -= dqdci; // dwdot[O]/d[N2H4] + J[744] += dqdci; // dwdot[OH]/d[N2H4] + J[759] -= dqdci; // dwdot[N2H4]/d[N2H4] + J[766] += dqdci; // dwdot[N2H3]/d[N2H4] + // d()/d[N2H3] + dqdci = -k_r * sc[8]; + J[966] -= dqdci; // dwdot[O]/d[N2H3] + J[968] += dqdci; // dwdot[OH]/d[N2H3] + J[983] -= dqdci; // dwdot[N2H4]/d[N2H3] + J[990] += dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1015] -= dqdT; // dwdot[N2H4]/dT + J[1022] += dqdT; // dwdot[N2H3]/dT + + // reaction 94: N2H4 + O <=> H2O + N2H2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[23]; + k_f = 84900000 * exp(-(603.859998965664) * invT); + dlnkfdT = (603.859998965664) * invT2; + // reverse + phi_r = sc[7] * sc[18]; + Kc = exp(g_RT[6] - g_RT[7] - g_RT[18] + g_RT[23]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[23]) + (h_RT[7] + h_RT[18])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[7] += q; // H2O + wdot[18] += q; // N2H2 + wdot[23] -= q; // N2H4 + // d()/d[O] + dqdci = +k_f * sc[23]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[199] += dqdci; // dwdot[H2O]/d[O] + J[210] += dqdci; // dwdot[N2H2]/d[O] + J[215] -= dqdci; // dwdot[N2H4]/d[O] + // d()/d[H2O] + dqdci = -k_r * sc[18]; + J[230] -= dqdci; // dwdot[O]/d[H2O] + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[242] += dqdci; // dwdot[N2H2]/d[H2O] + J[247] -= dqdci; // dwdot[N2H4]/d[H2O] + // d()/d[N2H2] + dqdci = -k_r * sc[7]; + J[582] -= dqdci; // dwdot[O]/d[N2H2] + J[583] += dqdci; // dwdot[H2O]/d[N2H2] + J[594] += dqdci; // dwdot[N2H2]/d[N2H2] + J[599] -= dqdci; // dwdot[N2H4]/d[N2H2] + // d()/d[N2H4] + dqdci = +k_f * sc[6]; + J[742] -= dqdci; // dwdot[O]/d[N2H4] + J[743] += dqdci; // dwdot[H2O]/d[N2H4] + J[754] += dqdci; // dwdot[N2H2]/d[N2H4] + J[759] -= dqdci; // dwdot[N2H4]/d[N2H4] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1010] += dqdT; // dwdot[N2H2]/dT + J[1015] -= dqdT; // dwdot[N2H4]/dT + + // reaction 95: N2H4 + OH <=> H2O + N2H3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[23]; + k_f = 13000000 * exp(-(-160.022899725901) * invT); + dlnkfdT = (-160.022899725901) * invT2; + // reverse + phi_r = sc[7] * sc[30]; + Kc = exp(-g_RT[7] + g_RT[8] + g_RT[23] - g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[23]) + (h_RT[7] + h_RT[30])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[23] -= q; // N2H4 + wdot[30] += q; // N2H3 + // d()/d[H2O] + dqdci = -k_r * sc[30]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[247] -= dqdci; // dwdot[N2H4]/d[H2O] + J[254] += dqdci; // dwdot[N2H3]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[23]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[279] -= dqdci; // dwdot[N2H4]/d[OH] + J[286] += dqdci; // dwdot[N2H3]/d[OH] + // d()/d[N2H4] + dqdci = +k_f * sc[8]; + J[743] += dqdci; // dwdot[H2O]/d[N2H4] + J[744] -= dqdci; // dwdot[OH]/d[N2H4] + J[759] -= dqdci; // dwdot[N2H4]/d[N2H4] + J[766] += dqdci; // dwdot[N2H3]/d[N2H4] + // d()/d[N2H3] + dqdci = -k_r * sc[7]; + J[967] += dqdci; // dwdot[H2O]/d[N2H3] + J[968] -= dqdci; // dwdot[OH]/d[N2H3] + J[983] -= dqdci; // dwdot[N2H4]/d[N2H3] + J[990] += dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1015] -= dqdT; // dwdot[N2H4]/dT + J[1022] += dqdT; // dwdot[N2H3]/dT + + // reaction 96: N2H4 + NH2 <=> N2H3 + NH3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[23] * sc[28]; + k_f = 3.7 * exp(1.94 * logT - (820.243165261693) * invT); + dlnkfdT = 1.94 * invT + (820.243165261693) * invT2; + // reverse + phi_r = sc[22] * sc[30]; + Kc = exp(-g_RT[22] + g_RT[23] + g_RT[28] - g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[23] + h_RT[28]) + (h_RT[22] + h_RT[30])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[22] += q; // NH3 + wdot[23] -= q; // N2H4 + wdot[28] -= q; // NH2 + wdot[30] += q; // N2H3 + // d()/d[NH3] + dqdci = -k_r * sc[30]; + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[727] -= dqdci; // dwdot[N2H4]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + J[734] += dqdci; // dwdot[N2H3]/d[NH3] + // d()/d[N2H4] + dqdci = +k_f * sc[28]; + J[758] += dqdci; // dwdot[NH3]/d[N2H4] + J[759] -= dqdci; // dwdot[N2H4]/d[N2H4] + J[764] -= dqdci; // dwdot[NH2]/d[N2H4] + J[766] += dqdci; // dwdot[N2H3]/d[N2H4] + // d()/d[NH2] + dqdci = +k_f * sc[23]; + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[919] -= dqdci; // dwdot[N2H4]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + J[926] += dqdci; // dwdot[N2H3]/d[NH2] + // d()/d[N2H3] + dqdci = -k_r * sc[22]; + J[982] += dqdci; // dwdot[NH3]/d[N2H3] + J[983] -= dqdci; // dwdot[N2H4]/d[N2H3] + J[988] -= dqdci; // dwdot[NH2]/d[N2H3] + J[990] += dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1015] -= dqdT; // dwdot[N2H4]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + J[1022] += dqdT; // dwdot[N2H3]/dT + + // reaction 97: N2H4 + NO <=> HNO + N2H3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[11] * sc[23]; + k_f = 6e-05 * exp(3.16 * logT - (15521.7180567466) * invT); + dlnkfdT = 3.16 * invT + (15521.7180567466) * invT2; + // reverse + phi_r = sc[14] * sc[30]; + Kc = exp(g_RT[11] - g_RT[14] + g_RT[23] - g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[11] + h_RT[23]) + (h_RT[14] + h_RT[30])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[11] -= q; // NO + wdot[14] += q; // HNO + wdot[23] -= q; // N2H4 + wdot[30] += q; // N2H3 + // d()/d[NO] + dqdci = +k_f * sc[23]; + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[366] += dqdci; // dwdot[HNO]/d[NO] + J[375] -= dqdci; // dwdot[N2H4]/d[NO] + J[382] += dqdci; // dwdot[N2H3]/d[NO] + // d()/d[HNO] + dqdci = -k_r * sc[30]; + J[459] -= dqdci; // dwdot[NO]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[471] -= dqdci; // dwdot[N2H4]/d[HNO] + J[478] += dqdci; // dwdot[N2H3]/d[HNO] + // d()/d[N2H4] + dqdci = +k_f * sc[11]; + J[747] -= dqdci; // dwdot[NO]/d[N2H4] + J[750] += dqdci; // dwdot[HNO]/d[N2H4] + J[759] -= dqdci; // dwdot[N2H4]/d[N2H4] + J[766] += dqdci; // dwdot[N2H3]/d[N2H4] + // d()/d[N2H3] + dqdci = -k_r * sc[14]; + J[971] -= dqdci; // dwdot[NO]/d[N2H3] + J[974] += dqdci; // dwdot[HNO]/d[N2H3] + J[983] -= dqdci; // dwdot[N2H4]/d[N2H3] + J[990] += dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1015] -= dqdT; // dwdot[N2H4]/dT + J[1022] += dqdT; // dwdot[N2H3]/dT + + // reaction 98: N2H4 + NO2 <=> HONO + N2H3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[13] * sc[23]; + k_f = 8.2e-05 * exp(3.13 * logT - (4458.49965902982) * invT); + dlnkfdT = 3.13 * invT + (4458.49965902982) * invT2; + // reverse + phi_r = sc[16] * sc[30]; + Kc = exp(g_RT[13] - g_RT[16] + g_RT[23] - g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[13] + h_RT[23]) + (h_RT[16] + h_RT[30])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[13] -= q; // NO2 + wdot[16] += q; // HONO + wdot[23] -= q; // N2H4 + wdot[30] += q; // N2H3 + // d()/d[NO2] + dqdci = +k_f * sc[23]; + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[432] += dqdci; // dwdot[HONO]/d[NO2] + J[439] -= dqdci; // dwdot[N2H4]/d[NO2] + J[446] += dqdci; // dwdot[N2H3]/d[NO2] + // d()/d[HONO] + dqdci = -k_r * sc[30]; + J[525] -= dqdci; // dwdot[NO2]/d[HONO] + J[528] += dqdci; // dwdot[HONO]/d[HONO] + J[535] -= dqdci; // dwdot[N2H4]/d[HONO] + J[542] += dqdci; // dwdot[N2H3]/d[HONO] + // d()/d[N2H4] + dqdci = +k_f * sc[13]; + J[749] -= dqdci; // dwdot[NO2]/d[N2H4] + J[752] += dqdci; // dwdot[HONO]/d[N2H4] + J[759] -= dqdci; // dwdot[N2H4]/d[N2H4] + J[766] += dqdci; // dwdot[N2H3]/d[N2H4] + // d()/d[N2H3] + dqdci = -k_r * sc[16]; + J[973] -= dqdci; // dwdot[NO2]/d[N2H3] + J[976] += dqdci; // dwdot[HONO]/d[N2H3] + J[983] -= dqdci; // dwdot[N2H4]/d[N2H3] + J[990] += dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1008] += dqdT; // dwdot[HONO]/dT + J[1015] -= dqdT; // dwdot[N2H4]/dT + J[1022] += dqdT; // dwdot[N2H3]/dT + + // reaction 99: N2H4 + NO2 <=> HNO2 + N2H3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[13] * sc[23]; + k_f = 2.4e-08 * exp(4.14 * logT - (3998.5596264843) * invT); + dlnkfdT = 4.14 * invT + (3998.5596264843) * invT2; + // reverse + phi_r = sc[15] * sc[30]; + Kc = exp(g_RT[13] - g_RT[15] + g_RT[23] - g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[13] + h_RT[23]) + (h_RT[15] + h_RT[30])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[13] -= q; // NO2 + wdot[15] += q; // HNO2 + wdot[23] -= q; // N2H4 + wdot[30] += q; // N2H3 + // d()/d[NO2] + dqdci = +k_f * sc[23]; + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[431] += dqdci; // dwdot[HNO2]/d[NO2] + J[439] -= dqdci; // dwdot[N2H4]/d[NO2] + J[446] += dqdci; // dwdot[N2H3]/d[NO2] + // d()/d[HNO2] + dqdci = -k_r * sc[30]; + J[493] -= dqdci; // dwdot[NO2]/d[HNO2] + J[495] += dqdci; // dwdot[HNO2]/d[HNO2] + J[503] -= dqdci; // dwdot[N2H4]/d[HNO2] + J[510] += dqdci; // dwdot[N2H3]/d[HNO2] + // d()/d[N2H4] + dqdci = +k_f * sc[13]; + J[749] -= dqdci; // dwdot[NO2]/d[N2H4] + J[751] += dqdci; // dwdot[HNO2]/d[N2H4] + J[759] -= dqdci; // dwdot[N2H4]/d[N2H4] + J[766] += dqdci; // dwdot[N2H3]/d[N2H4] + // d()/d[N2H3] + dqdci = -k_r * sc[15]; + J[973] -= dqdci; // dwdot[NO2]/d[N2H3] + J[975] += dqdci; // dwdot[HNO2]/d[N2H3] + J[983] -= dqdci; // dwdot[N2H4]/d[N2H3] + J[990] += dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1007] += dqdT; // dwdot[HNO2]/dT + J[1015] -= dqdT; // dwdot[N2H4]/dT + J[1022] += dqdT; // dwdot[N2H3]/dT + + // reaction 100: N2H3 <=> H + N2H2 + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[30]; + k_f = 3.40662040294527e+47 * + exp(-10.3752552116966 * logT - (34695.7112236119) * invT); + dlnkfdT = -10.3752552116966 * invT + (34695.7112236119) * invT2; + // reverse + phi_r = sc[4] * sc[18]; + Kc = refC * exp(-g_RT[4] - g_RT[18] + g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[30]) + (h_RT[4] + h_RT[18]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[18] += q; // N2H2 + wdot[30] -= q; // N2H3 + // d()/d[H] + dqdci = -k_r * sc[18]; + J[132] += dqdci; // dwdot[H]/d[H] + J[146] += dqdci; // dwdot[N2H2]/d[H] + J[158] -= dqdci; // dwdot[N2H3]/d[H] + // d()/d[N2H2] + dqdci = -k_r * sc[4]; + J[580] += dqdci; // dwdot[H]/d[N2H2] + J[594] += dqdci; // dwdot[N2H2]/d[N2H2] + J[606] -= dqdci; // dwdot[N2H3]/d[N2H2] + // d()/d[N2H3] + dqdci = +k_f; + J[964] += dqdci; // dwdot[H]/d[N2H3] + J[978] += dqdci; // dwdot[N2H2]/d[N2H3] + J[990] -= dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1010] += dqdT; // dwdot[N2H2]/dT + J[1022] -= dqdT; // dwdot[N2H3]/dT + + // reaction 101: H + N2H3 <=> H2 + N2H2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[30]; + k_f = 240 * exp(1.5 * logT); + dlnkfdT = 1.5 * invT; + // reverse + phi_r = sc[3] * sc[18]; + Kc = exp(-g_RT[3] + g_RT[4] - g_RT[18] + g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[30]) + (h_RT[3] + h_RT[18])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[18] += q; // N2H2 + wdot[30] -= q; // N2H3 + // d()/d[H2] + dqdci = -k_r * sc[18]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[114] += dqdci; // dwdot[N2H2]/d[H2] + J[126] -= dqdci; // dwdot[N2H3]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[30]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[146] += dqdci; // dwdot[N2H2]/d[H] + J[158] -= dqdci; // dwdot[N2H3]/d[H] + // d()/d[N2H2] + dqdci = -k_r * sc[3]; + J[579] += dqdci; // dwdot[H2]/d[N2H2] + J[580] -= dqdci; // dwdot[H]/d[N2H2] + J[594] += dqdci; // dwdot[N2H2]/d[N2H2] + J[606] -= dqdci; // dwdot[N2H3]/d[N2H2] + // d()/d[N2H3] + dqdci = +k_f * sc[4]; + J[963] += dqdci; // dwdot[H2]/d[N2H3] + J[964] -= dqdci; // dwdot[H]/d[N2H3] + J[978] += dqdci; // dwdot[N2H2]/d[N2H3] + J[990] -= dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1010] += dqdT; // dwdot[N2H2]/dT + J[1022] -= dqdT; // dwdot[N2H3]/dT + + // reaction 102: N2H3 + O <=> HNO + NH2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[30]; + k_f = 30000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[14] * sc[28]; + Kc = exp(g_RT[6] - g_RT[14] - g_RT[28] + g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[30]) + (h_RT[14] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[14] += q; // HNO + wdot[28] += q; // NH2 + wdot[30] -= q; // N2H3 + // d()/d[O] + dqdci = +k_f * sc[30]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[206] += dqdci; // dwdot[HNO]/d[O] + J[220] += dqdci; // dwdot[NH2]/d[O] + J[222] -= dqdci; // dwdot[N2H3]/d[O] + // d()/d[HNO] + dqdci = -k_r * sc[28]; + J[454] -= dqdci; // dwdot[O]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[476] += dqdci; // dwdot[NH2]/d[HNO] + J[478] -= dqdci; // dwdot[N2H3]/d[HNO] + // d()/d[NH2] + dqdci = -k_r * sc[14]; + J[902] -= dqdci; // dwdot[O]/d[NH2] + J[910] += dqdci; // dwdot[HNO]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + J[926] -= dqdci; // dwdot[N2H3]/d[NH2] + // d()/d[N2H3] + dqdci = +k_f * sc[6]; + J[966] -= dqdci; // dwdot[O]/d[N2H3] + J[974] += dqdci; // dwdot[HNO]/d[N2H3] + J[988] += dqdci; // dwdot[NH2]/d[N2H3] + J[990] -= dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + J[1022] -= dqdT; // dwdot[N2H3]/dT + + // reaction 103: N2H3 + O <=> N2H2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[30]; + k_f = 170 * exp(1.5 * logT - (-324.826357776947) * invT); + dlnkfdT = 1.5 * invT + (-324.826357776947) * invT2; + // reverse + phi_r = sc[8] * sc[18]; + Kc = exp(g_RT[6] - g_RT[8] - g_RT[18] + g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[30]) + (h_RT[8] + h_RT[18])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[18] += q; // N2H2 + wdot[30] -= q; // N2H3 + // d()/d[O] + dqdci = +k_f * sc[30]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[210] += dqdci; // dwdot[N2H2]/d[O] + J[222] -= dqdci; // dwdot[N2H3]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[18]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[274] += dqdci; // dwdot[N2H2]/d[OH] + J[286] -= dqdci; // dwdot[N2H3]/d[OH] + // d()/d[N2H2] + dqdci = -k_r * sc[8]; + J[582] -= dqdci; // dwdot[O]/d[N2H2] + J[584] += dqdci; // dwdot[OH]/d[N2H2] + J[594] += dqdci; // dwdot[N2H2]/d[N2H2] + J[606] -= dqdci; // dwdot[N2H3]/d[N2H2] + // d()/d[N2H3] + dqdci = +k_f * sc[6]; + J[966] -= dqdci; // dwdot[O]/d[N2H3] + J[968] += dqdci; // dwdot[OH]/d[N2H3] + J[978] += dqdci; // dwdot[N2H2]/d[N2H3] + J[990] -= dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1010] += dqdT; // dwdot[N2H2]/dT + J[1022] -= dqdT; // dwdot[N2H3]/dT + + // reaction 104: N2H3 + OH <=> H2O + N2H2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[30]; + k_f = 1.2 * exp(2 * logT - (-599.632978972904) * invT); + dlnkfdT = 2 * invT + (-599.632978972904) * invT2; + // reverse + phi_r = sc[7] * sc[18]; + Kc = exp(-g_RT[7] + g_RT[8] - g_RT[18] + g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[30]) + (h_RT[7] + h_RT[18])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[18] += q; // N2H2 + wdot[30] -= q; // N2H3 + // d()/d[H2O] + dqdci = -k_r * sc[18]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[242] += dqdci; // dwdot[N2H2]/d[H2O] + J[254] -= dqdci; // dwdot[N2H3]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[30]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[274] += dqdci; // dwdot[N2H2]/d[OH] + J[286] -= dqdci; // dwdot[N2H3]/d[OH] + // d()/d[N2H2] + dqdci = -k_r * sc[7]; + J[583] += dqdci; // dwdot[H2O]/d[N2H2] + J[584] -= dqdci; // dwdot[OH]/d[N2H2] + J[594] += dqdci; // dwdot[N2H2]/d[N2H2] + J[606] -= dqdci; // dwdot[N2H3]/d[N2H2] + // d()/d[N2H3] + dqdci = +k_f * sc[8]; + J[967] += dqdci; // dwdot[H2O]/d[N2H3] + J[968] -= dqdci; // dwdot[OH]/d[N2H3] + J[978] += dqdci; // dwdot[N2H2]/d[N2H3] + J[990] -= dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1010] += dqdT; // dwdot[N2H2]/dT + J[1022] -= dqdT; // dwdot[N2H3]/dT + + // reaction 105: N2H3 + OH <=> H2NN + H2O + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[30]; + k_f = 30000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[7] * sc[19]; + Kc = exp(-g_RT[7] + g_RT[8] - g_RT[19] + g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[30]) + (h_RT[7] + h_RT[19])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[19] += q; // H2NN + wdot[30] -= q; // N2H3 + // d()/d[H2O] + dqdci = -k_r * sc[19]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[243] += dqdci; // dwdot[H2NN]/d[H2O] + J[254] -= dqdci; // dwdot[N2H3]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[30]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[275] += dqdci; // dwdot[H2NN]/d[OH] + J[286] -= dqdci; // dwdot[N2H3]/d[OH] + // d()/d[H2NN] + dqdci = -k_r * sc[7]; + J[615] += dqdci; // dwdot[H2O]/d[H2NN] + J[616] -= dqdci; // dwdot[OH]/d[H2NN] + J[627] += dqdci; // dwdot[H2NN]/d[H2NN] + J[638] -= dqdci; // dwdot[N2H3]/d[H2NN] + // d()/d[N2H3] + dqdci = +k_f * sc[8]; + J[967] += dqdci; // dwdot[H2O]/d[N2H3] + J[968] -= dqdci; // dwdot[OH]/d[N2H3] + J[979] += dqdci; // dwdot[H2NN]/d[N2H3] + J[990] -= dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1011] += dqdT; // dwdot[H2NN]/dT + J[1022] -= dqdT; // dwdot[N2H3]/dT + + // reaction 106: N2H3 + NH2 <=> N2H2 + NH3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[28] * sc[30]; + k_f = 0.92 * exp(1.94 * logT - (-579.957207339939) * invT); + dlnkfdT = 1.94 * invT + (-579.957207339939) * invT2; + // reverse + phi_r = sc[18] * sc[22]; + Kc = exp(-g_RT[18] - g_RT[22] + g_RT[28] + g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[28] + h_RT[30]) + (h_RT[18] + h_RT[22])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[18] += q; // N2H2 + wdot[22] += q; // NH3 + wdot[28] -= q; // NH2 + wdot[30] -= q; // N2H3 + // d()/d[N2H2] + dqdci = -k_r * sc[22]; + J[594] += dqdci; // dwdot[N2H2]/d[N2H2] + J[598] += dqdci; // dwdot[NH3]/d[N2H2] + J[604] -= dqdci; // dwdot[NH2]/d[N2H2] + J[606] -= dqdci; // dwdot[N2H3]/d[N2H2] + // d()/d[NH3] + dqdci = -k_r * sc[18]; + J[722] += dqdci; // dwdot[N2H2]/d[NH3] + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + J[734] -= dqdci; // dwdot[N2H3]/d[NH3] + // d()/d[NH2] + dqdci = +k_f * sc[30]; + J[914] += dqdci; // dwdot[N2H2]/d[NH2] + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + J[926] -= dqdci; // dwdot[N2H3]/d[NH2] + // d()/d[N2H3] + dqdci = +k_f * sc[28]; + J[978] += dqdci; // dwdot[N2H2]/d[N2H3] + J[982] += dqdci; // dwdot[NH3]/d[N2H3] + J[988] -= dqdci; // dwdot[NH2]/d[N2H3] + J[990] -= dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[1010] += dqdT; // dwdot[N2H2]/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + J[1022] -= dqdT; // dwdot[N2H3]/dT + + // reaction 107: N2H3 + NH2 <=> H2NN + NH3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[28] * sc[30]; + k_f = 30000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[19] * sc[22]; + Kc = exp(-g_RT[19] - g_RT[22] + g_RT[28] + g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[28] + h_RT[30]) + (h_RT[19] + h_RT[22])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[19] += q; // H2NN + wdot[22] += q; // NH3 + wdot[28] -= q; // NH2 + wdot[30] -= q; // N2H3 + // d()/d[H2NN] + dqdci = -k_r * sc[22]; + J[627] += dqdci; // dwdot[H2NN]/d[H2NN] + J[630] += dqdci; // dwdot[NH3]/d[H2NN] + J[636] -= dqdci; // dwdot[NH2]/d[H2NN] + J[638] -= dqdci; // dwdot[N2H3]/d[H2NN] + // d()/d[NH3] + dqdci = -k_r * sc[19]; + J[723] += dqdci; // dwdot[H2NN]/d[NH3] + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + J[734] -= dqdci; // dwdot[N2H3]/d[NH3] + // d()/d[NH2] + dqdci = +k_f * sc[30]; + J[915] += dqdci; // dwdot[H2NN]/d[NH2] + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + J[926] -= dqdci; // dwdot[N2H3]/d[NH2] + // d()/d[N2H3] + dqdci = +k_f * sc[28]; + J[979] += dqdci; // dwdot[H2NN]/d[N2H3] + J[982] += dqdci; // dwdot[NH3]/d[N2H3] + J[988] -= dqdci; // dwdot[NH2]/d[N2H3] + J[990] -= dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[1011] += dqdT; // dwdot[H2NN]/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + J[1022] -= dqdT; // dwdot[N2H3]/dT + + // reaction 108: HO2 + N2H3 <=> H2O2 + N2H2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[30]; + k_f = 0.014 * exp(2.69 * logT - (-804.895056954649) * invT); + dlnkfdT = 2.69 * invT + (-804.895056954649) * invT2; + // reverse + phi_r = sc[9] * sc[18]; + Kc = exp(-g_RT[9] + g_RT[10] - g_RT[18] + g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[30]) + (h_RT[9] + h_RT[18])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[9] += q; // H2O2 + wdot[10] -= q; // HO2 + wdot[18] += q; // N2H2 + wdot[30] -= q; // N2H3 + // d()/d[H2O2] + dqdci = -k_r * sc[18]; + J[297] += dqdci; // dwdot[H2O2]/d[H2O2] + J[298] -= dqdci; // dwdot[HO2]/d[H2O2] + J[306] += dqdci; // dwdot[N2H2]/d[H2O2] + J[318] -= dqdci; // dwdot[N2H3]/d[H2O2] + // d()/d[HO2] + dqdci = +k_f * sc[30]; + J[329] += dqdci; // dwdot[H2O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[338] += dqdci; // dwdot[N2H2]/d[HO2] + J[350] -= dqdci; // dwdot[N2H3]/d[HO2] + // d()/d[N2H2] + dqdci = -k_r * sc[9]; + J[585] += dqdci; // dwdot[H2O2]/d[N2H2] + J[586] -= dqdci; // dwdot[HO2]/d[N2H2] + J[594] += dqdci; // dwdot[N2H2]/d[N2H2] + J[606] -= dqdci; // dwdot[N2H3]/d[N2H2] + // d()/d[N2H3] + dqdci = +k_f * sc[10]; + J[969] += dqdci; // dwdot[H2O2]/d[N2H3] + J[970] -= dqdci; // dwdot[HO2]/d[N2H3] + J[978] += dqdci; // dwdot[N2H2]/d[N2H3] + J[990] -= dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[1001] += dqdT; // dwdot[H2O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1010] += dqdT; // dwdot[N2H2]/dT + J[1022] -= dqdT; // dwdot[N2H3]/dT + + // reaction 109: HO2 + N2H3 <=> N2H4 + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[30]; + k_f = 0.92 * exp(1.94 * logT - (1069.88895316741) * invT); + dlnkfdT = 1.94 * invT + (1069.88895316741) * invT2; + // reverse + phi_r = sc[5] * sc[23]; + Kc = exp(-g_RT[5] + g_RT[10] - g_RT[23] + g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[30]) + (h_RT[5] + h_RT[23])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[10] -= q; // HO2 + wdot[23] += q; // N2H4 + wdot[30] -= q; // N2H3 + // d()/d[O2] + dqdci = -k_r * sc[23]; + J[165] += dqdci; // dwdot[O2]/d[O2] + J[170] -= dqdci; // dwdot[HO2]/d[O2] + J[183] += dqdci; // dwdot[N2H4]/d[O2] + J[190] -= dqdci; // dwdot[N2H3]/d[O2] + // d()/d[HO2] + dqdci = +k_f * sc[30]; + J[325] += dqdci; // dwdot[O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[343] += dqdci; // dwdot[N2H4]/d[HO2] + J[350] -= dqdci; // dwdot[N2H3]/d[HO2] + // d()/d[N2H4] + dqdci = -k_r * sc[5]; + J[741] += dqdci; // dwdot[O2]/d[N2H4] + J[746] -= dqdci; // dwdot[HO2]/d[N2H4] + J[759] += dqdci; // dwdot[N2H4]/d[N2H4] + J[766] -= dqdci; // dwdot[N2H3]/d[N2H4] + // d()/d[N2H3] + dqdci = +k_f * sc[10]; + J[965] += dqdci; // dwdot[O2]/d[N2H3] + J[970] -= dqdci; // dwdot[HO2]/d[N2H3] + J[983] += dqdci; // dwdot[N2H4]/d[N2H3] + J[990] -= dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1015] += dqdT; // dwdot[N2H4]/dT + J[1022] -= dqdT; // dwdot[N2H3]/dT + + // reaction 110: N2H2 <=> H + NNH + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[18]; + k_f = 1.71879413245943e+40 * + exp(-8.40622703580694 * logT - (36903.4250189979) * invT); + dlnkfdT = -8.40622703580694 * invT + (36903.4250189979) * invT2; + // reverse + phi_r = sc[4] * sc[27]; + Kc = refC * exp(-g_RT[4] + g_RT[18] - g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[18]) + (h_RT[4] + h_RT[27]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[18] -= q; // N2H2 + wdot[27] += q; // NNH + // d()/d[H] + dqdci = -k_r * sc[27]; + J[132] += dqdci; // dwdot[H]/d[H] + J[146] -= dqdci; // dwdot[N2H2]/d[H] + J[155] += dqdci; // dwdot[NNH]/d[H] + // d()/d[N2H2] + dqdci = +k_f; + J[580] += dqdci; // dwdot[H]/d[N2H2] + J[594] -= dqdci; // dwdot[N2H2]/d[N2H2] + J[603] += dqdci; // dwdot[NNH]/d[N2H2] + // d()/d[NNH] + dqdci = -k_r * sc[4]; + J[868] += dqdci; // dwdot[H]/d[NNH] + J[882] -= dqdci; // dwdot[N2H2]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1010] -= dqdT; // dwdot[N2H2]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + + // reaction 111: N2H2 <=> H + NNH + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[18]; + k_f = 2.49240230236554e+40 * + exp(-8.5266271986759 * logT - (36671.3233662919) * invT); + dlnkfdT = -8.5266271986759 * invT + (36671.3233662919) * invT2; + // reverse + phi_r = sc[4] * sc[27]; + Kc = refC * exp(-g_RT[4] + g_RT[18] - g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[18]) + (h_RT[4] + h_RT[27]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[18] -= q; // N2H2 + wdot[27] += q; // NNH + // d()/d[H] + dqdci = -k_r * sc[27]; + J[132] += dqdci; // dwdot[H]/d[H] + J[146] -= dqdci; // dwdot[N2H2]/d[H] + J[155] += dqdci; // dwdot[NNH]/d[H] + // d()/d[N2H2] + dqdci = +k_f; + J[580] += dqdci; // dwdot[H]/d[N2H2] + J[594] -= dqdci; // dwdot[N2H2]/d[N2H2] + J[603] += dqdci; // dwdot[NNH]/d[N2H2] + // d()/d[NNH] + dqdci = -k_r * sc[4]; + J[868] += dqdci; // dwdot[H]/d[NNH] + J[882] -= dqdci; // dwdot[N2H2]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1010] -= dqdT; // dwdot[N2H2]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + + // reaction 112: H + N2H2 <=> H2 + NNH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[18]; + k_f = 4121 * exp(1.289 * logT - (-112.770854806838) * invT); + dlnkfdT = 1.289 * invT + (-112.770854806838) * invT2; + // reverse + phi_r = sc[3] * sc[27]; + Kc = exp(-g_RT[3] + g_RT[4] + g_RT[18] - g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[18]) + (h_RT[3] + h_RT[27])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[18] -= q; // N2H2 + wdot[27] += q; // NNH + // d()/d[H2] + dqdci = -k_r * sc[27]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[114] -= dqdci; // dwdot[N2H2]/d[H2] + J[123] += dqdci; // dwdot[NNH]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[18]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[146] -= dqdci; // dwdot[N2H2]/d[H] + J[155] += dqdci; // dwdot[NNH]/d[H] + // d()/d[N2H2] + dqdci = +k_f * sc[4]; + J[579] += dqdci; // dwdot[H2]/d[N2H2] + J[580] -= dqdci; // dwdot[H]/d[N2H2] + J[594] -= dqdci; // dwdot[N2H2]/d[N2H2] + J[603] += dqdci; // dwdot[NNH]/d[N2H2] + // d()/d[NNH] + dqdci = -k_r * sc[3]; + J[867] += dqdci; // dwdot[H2]/d[NNH] + J[868] -= dqdci; // dwdot[H]/d[NNH] + J[882] -= dqdci; // dwdot[N2H2]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1010] -= dqdT; // dwdot[N2H2]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + + // reaction 113: N2H2 + O <=> NNH + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[18]; + k_f = 330 * exp(1.5 * logT - (249.847074572043) * invT); + dlnkfdT = 1.5 * invT + (249.847074572043) * invT2; + // reverse + phi_r = sc[8] * sc[27]; + Kc = exp(g_RT[6] - g_RT[8] + g_RT[18] - g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[18]) + (h_RT[8] + h_RT[27])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[18] -= q; // N2H2 + wdot[27] += q; // NNH + // d()/d[O] + dqdci = +k_f * sc[18]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[210] -= dqdci; // dwdot[N2H2]/d[O] + J[219] += dqdci; // dwdot[NNH]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[27]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[274] -= dqdci; // dwdot[N2H2]/d[OH] + J[283] += dqdci; // dwdot[NNH]/d[OH] + // d()/d[N2H2] + dqdci = +k_f * sc[6]; + J[582] -= dqdci; // dwdot[O]/d[N2H2] + J[584] += dqdci; // dwdot[OH]/d[N2H2] + J[594] -= dqdci; // dwdot[N2H2]/d[N2H2] + J[603] += dqdci; // dwdot[NNH]/d[N2H2] + // d()/d[NNH] + dqdci = -k_r * sc[8]; + J[870] -= dqdci; // dwdot[O]/d[NNH] + J[872] += dqdci; // dwdot[OH]/d[NNH] + J[882] -= dqdci; // dwdot[N2H2]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1010] -= dqdT; // dwdot[N2H2]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + + // reaction 114: N2H2 + OH <=> H2O + NNH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[18]; + k_f = 5.923e-05 * exp(3.4 * logT - (-686.236567157896) * invT); + dlnkfdT = 3.4 * invT + (-686.236567157896) * invT2; + // reverse + phi_r = sc[7] * sc[27]; + Kc = exp(-g_RT[7] + g_RT[8] + g_RT[18] - g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[18]) + (h_RT[7] + h_RT[27])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[18] -= q; // N2H2 + wdot[27] += q; // NNH + // d()/d[H2O] + dqdci = -k_r * sc[27]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[242] -= dqdci; // dwdot[N2H2]/d[H2O] + J[251] += dqdci; // dwdot[NNH]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[18]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[274] -= dqdci; // dwdot[N2H2]/d[OH] + J[283] += dqdci; // dwdot[NNH]/d[OH] + // d()/d[N2H2] + dqdci = +k_f * sc[8]; + J[583] += dqdci; // dwdot[H2O]/d[N2H2] + J[584] -= dqdci; // dwdot[OH]/d[N2H2] + J[594] -= dqdci; // dwdot[N2H2]/d[N2H2] + J[603] += dqdci; // dwdot[NNH]/d[N2H2] + // d()/d[NNH] + dqdci = -k_r * sc[7]; + J[871] += dqdci; // dwdot[H2O]/d[NNH] + J[872] -= dqdci; // dwdot[OH]/d[NNH] + J[882] -= dqdci; // dwdot[N2H2]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1010] -= dqdT; // dwdot[N2H2]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + + // reaction 115: N2H2 + NO <=> N2O + NH2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[11] * sc[18]; + k_f = 4000000 * exp(-(5996.32978972904) * invT); + dlnkfdT = (5996.32978972904) * invT2; + // reverse + phi_r = sc[12] * sc[28]; + Kc = exp(g_RT[11] - g_RT[12] + g_RT[18] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[11] + h_RT[18]) + (h_RT[12] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[11] -= q; // NO + wdot[12] += q; // N2O + wdot[18] -= q; // N2H2 + wdot[28] += q; // NH2 + // d()/d[NO] + dqdci = +k_f * sc[18]; + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[364] += dqdci; // dwdot[N2O]/d[NO] + J[370] -= dqdci; // dwdot[N2H2]/d[NO] + J[380] += dqdci; // dwdot[NH2]/d[NO] + // d()/d[N2O] + dqdci = -k_r * sc[28]; + J[395] -= dqdci; // dwdot[NO]/d[N2O] + J[396] += dqdci; // dwdot[N2O]/d[N2O] + J[402] -= dqdci; // dwdot[N2H2]/d[N2O] + J[412] += dqdci; // dwdot[NH2]/d[N2O] + // d()/d[N2H2] + dqdci = +k_f * sc[11]; + J[587] -= dqdci; // dwdot[NO]/d[N2H2] + J[588] += dqdci; // dwdot[N2O]/d[N2H2] + J[594] -= dqdci; // dwdot[N2H2]/d[N2H2] + J[604] += dqdci; // dwdot[NH2]/d[N2H2] + // d()/d[NH2] + dqdci = -k_r * sc[12]; + J[907] -= dqdci; // dwdot[NO]/d[NH2] + J[908] += dqdci; // dwdot[N2O]/d[NH2] + J[914] -= dqdci; // dwdot[N2H2]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1004] += dqdT; // dwdot[N2O]/dT + J[1010] -= dqdT; // dwdot[N2H2]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 116: N2H2 + NH <=> NH2 + NNH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[18] * sc[26]; + k_f = 2.4 * exp(2 * logT - (-599.632978972904) * invT); + dlnkfdT = 2 * invT + (-599.632978972904) * invT2; + // reverse + phi_r = sc[27] * sc[28]; + Kc = exp(g_RT[18] + g_RT[26] - g_RT[27] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[18] + h_RT[26]) + (h_RT[27] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[18] -= q; // N2H2 + wdot[26] -= q; // NH + wdot[27] += q; // NNH + wdot[28] += q; // NH2 + // d()/d[N2H2] + dqdci = +k_f * sc[26]; + J[594] -= dqdci; // dwdot[N2H2]/d[N2H2] + J[602] -= dqdci; // dwdot[NH]/d[N2H2] + J[603] += dqdci; // dwdot[NNH]/d[N2H2] + J[604] += dqdci; // dwdot[NH2]/d[N2H2] + // d()/d[NH] + dqdci = +k_f * sc[18]; + J[850] -= dqdci; // dwdot[N2H2]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + J[859] += dqdci; // dwdot[NNH]/d[NH] + J[860] += dqdci; // dwdot[NH2]/d[NH] + // d()/d[NNH] + dqdci = -k_r * sc[28]; + J[882] -= dqdci; // dwdot[N2H2]/d[NNH] + J[890] -= dqdci; // dwdot[NH]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + J[892] += dqdci; // dwdot[NH2]/d[NNH] + // d()/d[NH2] + dqdci = -k_r * sc[27]; + J[914] -= dqdci; // dwdot[N2H2]/d[NH2] + J[922] -= dqdci; // dwdot[NH]/d[NH2] + J[923] += dqdci; // dwdot[NNH]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1010] -= dqdT; // dwdot[N2H2]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 117: N2H2 + NH2 <=> NH3 + NNH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[18] * sc[28]; + k_f = 8.8e-08 * exp(4.05 * logT - (-810.178831945599) * invT); + dlnkfdT = 4.05 * invT + (-810.178831945599) * invT2; + // reverse + phi_r = sc[22] * sc[27]; + Kc = exp(g_RT[18] - g_RT[22] - g_RT[27] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[18] + h_RT[28]) + (h_RT[22] + h_RT[27])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[18] -= q; // N2H2 + wdot[22] += q; // NH3 + wdot[27] += q; // NNH + wdot[28] -= q; // NH2 + // d()/d[N2H2] + dqdci = +k_f * sc[28]; + J[594] -= dqdci; // dwdot[N2H2]/d[N2H2] + J[598] += dqdci; // dwdot[NH3]/d[N2H2] + J[603] += dqdci; // dwdot[NNH]/d[N2H2] + J[604] -= dqdci; // dwdot[NH2]/d[N2H2] + // d()/d[NH3] + dqdci = -k_r * sc[27]; + J[722] -= dqdci; // dwdot[N2H2]/d[NH3] + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[731] += dqdci; // dwdot[NNH]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NNH] + dqdci = -k_r * sc[22]; + J[882] -= dqdci; // dwdot[N2H2]/d[NNH] + J[886] += dqdci; // dwdot[NH3]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + J[892] -= dqdci; // dwdot[NH2]/d[NNH] + // d()/d[NH2] + dqdci = +k_f * sc[18]; + J[914] -= dqdci; // dwdot[N2H2]/d[NH2] + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[923] += dqdci; // dwdot[NNH]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1010] -= dqdT; // dwdot[N2H2]/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 118: N2H2 <=> H2NN + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[18]; + k_f = 1.93940668415635e+41 * + exp(-9.37788485340692 * logT - (34444.2013843765) * invT); + dlnkfdT = -9.37788485340692 * invT + (34444.2013843765) * invT2; + // reverse + phi_r = sc[19]; + Kc = exp(g_RT[18] - g_RT[19]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[18]) + (h_RT[19])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[18] -= q; // N2H2 + wdot[19] += q; // H2NN + // d()/d[N2H2] + dqdci = +k_f; + J[594] -= dqdci; // dwdot[N2H2]/d[N2H2] + J[595] += dqdci; // dwdot[H2NN]/d[N2H2] + // d()/d[H2NN] + dqdci = -k_r; + J[626] -= dqdci; // dwdot[N2H2]/d[H2NN] + J[627] += dqdci; // dwdot[H2NN]/d[H2NN] + // d()/dT + J[1010] -= dqdT; // dwdot[N2H2]/dT + J[1011] += dqdT; // dwdot[H2NN]/dT + + // reaction 119: H2NN <=> H + NNH + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[19]; + k_f = 9.20264764849862e+35 * + exp(-7.56668436480004 * logT - (27588.2318940823) * invT); + dlnkfdT = -7.56668436480004 * invT + (27588.2318940823) * invT2; + // reverse + phi_r = sc[4] * sc[27]; + Kc = refC * exp(-g_RT[4] + g_RT[19] - g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[19]) + (h_RT[4] + h_RT[27]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[19] -= q; // H2NN + wdot[27] += q; // NNH + // d()/d[H] + dqdci = -k_r * sc[27]; + J[132] += dqdci; // dwdot[H]/d[H] + J[147] -= dqdci; // dwdot[H2NN]/d[H] + J[155] += dqdci; // dwdot[NNH]/d[H] + // d()/d[H2NN] + dqdci = +k_f; + J[612] += dqdci; // dwdot[H]/d[H2NN] + J[627] -= dqdci; // dwdot[H2NN]/d[H2NN] + J[635] += dqdci; // dwdot[NNH]/d[H2NN] + // d()/d[NNH] + dqdci = -k_r * sc[4]; + J[868] += dqdci; // dwdot[H]/d[NNH] + J[883] -= dqdci; // dwdot[H2NN]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1011] -= dqdT; // dwdot[H2NN]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + + // reaction 120: H2NN <=> H + NNH + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[19]; + k_f = 3.09039101188632e+31 * + exp(-6.22886074924128 * logT - (26322.6514882744) * invT); + dlnkfdT = -6.22886074924128 * invT + (26322.6514882744) * invT2; + // reverse + phi_r = sc[4] * sc[27]; + Kc = refC * exp(-g_RT[4] + g_RT[19] - g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[19]) + (h_RT[4] + h_RT[27]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[19] -= q; // H2NN + wdot[27] += q; // NNH + // d()/d[H] + dqdci = -k_r * sc[27]; + J[132] += dqdci; // dwdot[H]/d[H] + J[147] -= dqdci; // dwdot[H2NN]/d[H] + J[155] += dqdci; // dwdot[NNH]/d[H] + // d()/d[H2NN] + dqdci = +k_f; + J[612] += dqdci; // dwdot[H]/d[H2NN] + J[627] -= dqdci; // dwdot[H2NN]/d[H2NN] + J[635] += dqdci; // dwdot[NNH]/d[H2NN] + // d()/d[NNH] + dqdci = -k_r * sc[4]; + J[868] += dqdci; // dwdot[H]/d[NNH] + J[883] -= dqdci; // dwdot[H2NN]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1011] -= dqdT; // dwdot[H2NN]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + + // reaction 121: H2NN + O2 <=> NH2 + NO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[5] * sc[19]; + k_f = 1500000 * exp(-(2999.67454486193) * invT); + dlnkfdT = (2999.67454486193) * invT2; + // reverse + phi_r = sc[13] * sc[28]; + Kc = exp(g_RT[5] - g_RT[13] + g_RT[19] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[5] + h_RT[19]) + (h_RT[13] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] -= q; // O2 + wdot[13] += q; // NO2 + wdot[19] -= q; // H2NN + wdot[28] += q; // NH2 + // d()/d[O2] + dqdci = +k_f * sc[19]; + J[165] -= dqdci; // dwdot[O2]/d[O2] + J[173] += dqdci; // dwdot[NO2]/d[O2] + J[179] -= dqdci; // dwdot[H2NN]/d[O2] + J[188] += dqdci; // dwdot[NH2]/d[O2] + // d()/d[NO2] + dqdci = -k_r * sc[28]; + J[421] -= dqdci; // dwdot[O2]/d[NO2] + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[435] -= dqdci; // dwdot[H2NN]/d[NO2] + J[444] += dqdci; // dwdot[NH2]/d[NO2] + // d()/d[H2NN] + dqdci = +k_f * sc[5]; + J[613] -= dqdci; // dwdot[O2]/d[H2NN] + J[621] += dqdci; // dwdot[NO2]/d[H2NN] + J[627] -= dqdci; // dwdot[H2NN]/d[H2NN] + J[636] += dqdci; // dwdot[NH2]/d[H2NN] + // d()/d[NH2] + dqdci = -k_r * sc[13]; + J[901] -= dqdci; // dwdot[O2]/d[NH2] + J[909] += dqdci; // dwdot[NO2]/d[NH2] + J[915] -= dqdci; // dwdot[H2NN]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1011] -= dqdT; // dwdot[H2NN]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 122: H + H2NN <=> H + N2H2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[19]; + k_f = 18000 * exp(0.97 * logT - (2249.78106947974) * invT); + dlnkfdT = 0.97 * invT + (2249.78106947974) * invT2; + // reverse + phi_r = sc[4] * sc[18]; + Kc = exp(g_RT[4] - g_RT[4] - g_RT[18] + g_RT[19]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[19]) + (h_RT[4] + h_RT[18])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[18] += q; // N2H2 + wdot[19] -= q; // H2NN + // d()/d[H] + dqdci = +k_f * sc[19] - k_r * sc[18]; + J[146] += dqdci; // dwdot[N2H2]/d[H] + J[147] -= dqdci; // dwdot[H2NN]/d[H] + // d()/d[N2H2] + dqdci = -k_r * sc[4]; + J[594] += dqdci; // dwdot[N2H2]/d[N2H2] + J[595] -= dqdci; // dwdot[H2NN]/d[N2H2] + // d()/d[H2NN] + dqdci = +k_f * sc[4]; + J[626] += dqdci; // dwdot[N2H2]/d[H2NN] + J[627] -= dqdci; // dwdot[H2NN]/d[H2NN] + // d()/dT + J[1010] += dqdT; // dwdot[N2H2]/dT + J[1011] -= dqdT; // dwdot[H2NN]/dT + + // reaction 123: H + H2NN <=> H2 + NNH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[19]; + k_f = 480 * exp(1.5 * logT - (-449.97634256258) * invT); + dlnkfdT = 1.5 * invT + (-449.97634256258) * invT2; + // reverse + phi_r = sc[3] * sc[27]; + Kc = exp(-g_RT[3] + g_RT[4] + g_RT[19] - g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[19]) + (h_RT[3] + h_RT[27])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[19] -= q; // H2NN + wdot[27] += q; // NNH + // d()/d[H2] + dqdci = -k_r * sc[27]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[115] -= dqdci; // dwdot[H2NN]/d[H2] + J[123] += dqdci; // dwdot[NNH]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[19]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[147] -= dqdci; // dwdot[H2NN]/d[H] + J[155] += dqdci; // dwdot[NNH]/d[H] + // d()/d[H2NN] + dqdci = +k_f * sc[4]; + J[611] += dqdci; // dwdot[H2]/d[H2NN] + J[612] -= dqdci; // dwdot[H]/d[H2NN] + J[627] -= dqdci; // dwdot[H2NN]/d[H2NN] + J[635] += dqdci; // dwdot[NNH]/d[H2NN] + // d()/d[NNH] + dqdci = -k_r * sc[3]; + J[867] += dqdci; // dwdot[H2]/d[NNH] + J[868] -= dqdci; // dwdot[H]/d[NNH] + J[883] -= dqdci; // dwdot[H2NN]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1011] -= dqdT; // dwdot[H2NN]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + + // reaction 124: H2NN + O <=> NH2 + NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[19]; + k_f = 3200 * exp(1.03 * logT - (1359.84239600409) * invT); + dlnkfdT = 1.03 * invT + (1359.84239600409) * invT2; + // reverse + phi_r = sc[11] * sc[28]; + Kc = exp(g_RT[6] - g_RT[11] + g_RT[19] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[19]) + (h_RT[11] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[11] += q; // NO + wdot[19] -= q; // H2NN + wdot[28] += q; // NH2 + // d()/d[O] + dqdci = +k_f * sc[19]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[203] += dqdci; // dwdot[NO]/d[O] + J[211] -= dqdci; // dwdot[H2NN]/d[O] + J[220] += dqdci; // dwdot[NH2]/d[O] + // d()/d[NO] + dqdci = -k_r * sc[28]; + J[358] -= dqdci; // dwdot[O]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[371] -= dqdci; // dwdot[H2NN]/d[NO] + J[380] += dqdci; // dwdot[NH2]/d[NO] + // d()/d[H2NN] + dqdci = +k_f * sc[6]; + J[614] -= dqdci; // dwdot[O]/d[H2NN] + J[619] += dqdci; // dwdot[NO]/d[H2NN] + J[627] -= dqdci; // dwdot[H2NN]/d[H2NN] + J[636] += dqdci; // dwdot[NH2]/d[H2NN] + // d()/d[NH2] + dqdci = -k_r * sc[11]; + J[902] -= dqdci; // dwdot[O]/d[NH2] + J[907] += dqdci; // dwdot[NO]/d[NH2] + J[915] -= dqdci; // dwdot[H2NN]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1011] -= dqdT; // dwdot[H2NN]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 125: H2NN + O <=> NNH + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[19]; + k_f = 330 * exp(1.5 * logT - (-449.97634256258) * invT); + dlnkfdT = 1.5 * invT + (-449.97634256258) * invT2; + // reverse + phi_r = sc[8] * sc[27]; + Kc = exp(g_RT[6] - g_RT[8] + g_RT[19] - g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[19]) + (h_RT[8] + h_RT[27])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[19] -= q; // H2NN + wdot[27] += q; // NNH + // d()/d[O] + dqdci = +k_f * sc[19]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[211] -= dqdci; // dwdot[H2NN]/d[O] + J[219] += dqdci; // dwdot[NNH]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[27]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[275] -= dqdci; // dwdot[H2NN]/d[OH] + J[283] += dqdci; // dwdot[NNH]/d[OH] + // d()/d[H2NN] + dqdci = +k_f * sc[6]; + J[614] -= dqdci; // dwdot[O]/d[H2NN] + J[616] += dqdci; // dwdot[OH]/d[H2NN] + J[627] -= dqdci; // dwdot[H2NN]/d[H2NN] + J[635] += dqdci; // dwdot[NNH]/d[H2NN] + // d()/d[NNH] + dqdci = -k_r * sc[8]; + J[870] -= dqdci; // dwdot[O]/d[NNH] + J[872] += dqdci; // dwdot[OH]/d[NNH] + J[883] -= dqdci; // dwdot[H2NN]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1011] -= dqdT; // dwdot[H2NN]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + + // reaction 126: H2NN + OH <=> H2O + NNH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[19]; + k_f = 2.4 * exp(2 * logT - (-599.934908972387) * invT); + dlnkfdT = 2 * invT + (-599.934908972387) * invT2; + // reverse + phi_r = sc[7] * sc[27]; + Kc = exp(-g_RT[7] + g_RT[8] + g_RT[19] - g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[19]) + (h_RT[7] + h_RT[27])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[19] -= q; // H2NN + wdot[27] += q; // NNH + // d()/d[H2O] + dqdci = -k_r * sc[27]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[243] -= dqdci; // dwdot[H2NN]/d[H2O] + J[251] += dqdci; // dwdot[NNH]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[19]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[275] -= dqdci; // dwdot[H2NN]/d[OH] + J[283] += dqdci; // dwdot[NNH]/d[OH] + // d()/d[H2NN] + dqdci = +k_f * sc[8]; + J[615] += dqdci; // dwdot[H2O]/d[H2NN] + J[616] -= dqdci; // dwdot[OH]/d[H2NN] + J[627] -= dqdci; // dwdot[H2NN]/d[H2NN] + J[635] += dqdci; // dwdot[NNH]/d[H2NN] + // d()/d[NNH] + dqdci = -k_r * sc[7]; + J[871] += dqdci; // dwdot[H2O]/d[NNH] + J[872] -= dqdci; // dwdot[OH]/d[NNH] + J[883] -= dqdci; // dwdot[H2NN]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1011] -= dqdT; // dwdot[H2NN]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + + // reaction 127: H2NN + NH2 <=> NH3 + NNH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[19] * sc[28]; + k_f = 1.8 * exp(1.94 * logT - (-579.957207339939) * invT); + dlnkfdT = 1.94 * invT + (-579.957207339939) * invT2; + // reverse + phi_r = sc[22] * sc[27]; + Kc = exp(g_RT[19] - g_RT[22] - g_RT[27] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[19] + h_RT[28]) + (h_RT[22] + h_RT[27])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[19] -= q; // H2NN + wdot[22] += q; // NH3 + wdot[27] += q; // NNH + wdot[28] -= q; // NH2 + // d()/d[H2NN] + dqdci = +k_f * sc[28]; + J[627] -= dqdci; // dwdot[H2NN]/d[H2NN] + J[630] += dqdci; // dwdot[NH3]/d[H2NN] + J[635] += dqdci; // dwdot[NNH]/d[H2NN] + J[636] -= dqdci; // dwdot[NH2]/d[H2NN] + // d()/d[NH3] + dqdci = -k_r * sc[27]; + J[723] -= dqdci; // dwdot[H2NN]/d[NH3] + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[731] += dqdci; // dwdot[NNH]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NNH] + dqdci = -k_r * sc[22]; + J[883] -= dqdci; // dwdot[H2NN]/d[NNH] + J[886] += dqdci; // dwdot[NH3]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + J[892] -= dqdci; // dwdot[NH2]/d[NNH] + // d()/d[NH2] + dqdci = +k_f * sc[19]; + J[915] -= dqdci; // dwdot[H2NN]/d[NH2] + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[923] += dqdci; // dwdot[NNH]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1011] -= dqdT; // dwdot[H2NN]/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 128: H2NN + HO2 <=> H2O2 + NNH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[19]; + k_f = 0.029 * exp(2.69 * logT - (-804.895056954649) * invT); + dlnkfdT = 2.69 * invT + (-804.895056954649) * invT2; + // reverse + phi_r = sc[9] * sc[27]; + Kc = exp(-g_RT[9] + g_RT[10] + g_RT[19] - g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[19]) + (h_RT[9] + h_RT[27])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[9] += q; // H2O2 + wdot[10] -= q; // HO2 + wdot[19] -= q; // H2NN + wdot[27] += q; // NNH + // d()/d[H2O2] + dqdci = -k_r * sc[27]; + J[297] += dqdci; // dwdot[H2O2]/d[H2O2] + J[298] -= dqdci; // dwdot[HO2]/d[H2O2] + J[307] -= dqdci; // dwdot[H2NN]/d[H2O2] + J[315] += dqdci; // dwdot[NNH]/d[H2O2] + // d()/d[HO2] + dqdci = +k_f * sc[19]; + J[329] += dqdci; // dwdot[H2O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[339] -= dqdci; // dwdot[H2NN]/d[HO2] + J[347] += dqdci; // dwdot[NNH]/d[HO2] + // d()/d[H2NN] + dqdci = +k_f * sc[10]; + J[617] += dqdci; // dwdot[H2O2]/d[H2NN] + J[618] -= dqdci; // dwdot[HO2]/d[H2NN] + J[627] -= dqdci; // dwdot[H2NN]/d[H2NN] + J[635] += dqdci; // dwdot[NNH]/d[H2NN] + // d()/d[NNH] + dqdci = -k_r * sc[9]; + J[873] += dqdci; // dwdot[H2O2]/d[NNH] + J[874] -= dqdci; // dwdot[HO2]/d[NNH] + J[883] -= dqdci; // dwdot[H2NN]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[1001] += dqdT; // dwdot[H2O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1011] -= dqdT; // dwdot[H2NN]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + + // reaction 129: NNH <=> H + N2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[27]; + k_f = 1000000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[1] * sc[4]; + Kc = refC * exp(-g_RT[1] - g_RT[4] + g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[27]) + (h_RT[1] + h_RT[4]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[4] += q; // H + wdot[27] -= q; // NNH + // d()/d[N2] + dqdci = -k_r * sc[4]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[36] += dqdci; // dwdot[H]/d[N2] + J[59] -= dqdci; // dwdot[NNH]/d[N2] + // d()/d[H] + dqdci = -k_r * sc[1]; + J[129] += dqdci; // dwdot[N2]/d[H] + J[132] += dqdci; // dwdot[H]/d[H] + J[155] -= dqdci; // dwdot[NNH]/d[H] + // d()/d[NNH] + dqdci = +k_f; + J[865] += dqdci; // dwdot[N2]/d[NNH] + J[868] += dqdci; // dwdot[H]/d[NNH] + J[891] -= dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[996] += dqdT; // dwdot[H]/dT + J[1019] -= dqdT; // dwdot[NNH]/dT + + // reaction 130: H + NNH <=> H2 + N2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[27]; + k_f = 240 * exp(1.5 * logT - (-449.724734229678) * invT); + dlnkfdT = 1.5 * invT + (-449.724734229678) * invT2; + // reverse + phi_r = sc[1] * sc[3]; + Kc = exp(-g_RT[1] - g_RT[3] + g_RT[4] + g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[27]) + (h_RT[1] + h_RT[3])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[27] -= q; // NNH + // d()/d[N2] + dqdci = -k_r * sc[3]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[35] += dqdci; // dwdot[H2]/d[N2] + J[36] -= dqdci; // dwdot[H]/d[N2] + J[59] -= dqdci; // dwdot[NNH]/d[N2] + // d()/d[H2] + dqdci = -k_r * sc[1]; + J[97] += dqdci; // dwdot[N2]/d[H2] + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[123] -= dqdci; // dwdot[NNH]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[27]; + J[129] += dqdci; // dwdot[N2]/d[H] + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[155] -= dqdci; // dwdot[NNH]/d[H] + // d()/d[NNH] + dqdci = +k_f * sc[4]; + J[865] += dqdci; // dwdot[N2]/d[NNH] + J[867] += dqdci; // dwdot[H2]/d[NNH] + J[868] -= dqdci; // dwdot[H]/d[NNH] + J[891] -= dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1019] -= dqdT; // dwdot[NNH]/dT + + // reaction 131: NNH + O <=> H + N2O + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[27]; + k_f = 190000000 * exp(-0.274 * logT - (-11.0707666477038) * invT); + dlnkfdT = -0.274 * invT + (-11.0707666477038) * invT2; + // reverse + phi_r = sc[4] * sc[12]; + Kc = exp(-g_RT[4] + g_RT[6] - g_RT[12] + g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[27]) + (h_RT[4] + h_RT[12])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[6] -= q; // O + wdot[12] += q; // N2O + wdot[27] -= q; // NNH + // d()/d[H] + dqdci = -k_r * sc[12]; + J[132] += dqdci; // dwdot[H]/d[H] + J[134] -= dqdci; // dwdot[O]/d[H] + J[140] += dqdci; // dwdot[N2O]/d[H] + J[155] -= dqdci; // dwdot[NNH]/d[H] + // d()/d[O] + dqdci = +k_f * sc[27]; + J[196] += dqdci; // dwdot[H]/d[O] + J[198] -= dqdci; // dwdot[O]/d[O] + J[204] += dqdci; // dwdot[N2O]/d[O] + J[219] -= dqdci; // dwdot[NNH]/d[O] + // d()/d[N2O] + dqdci = -k_r * sc[4]; + J[388] += dqdci; // dwdot[H]/d[N2O] + J[390] -= dqdci; // dwdot[O]/d[N2O] + J[396] += dqdci; // dwdot[N2O]/d[N2O] + J[411] -= dqdci; // dwdot[NNH]/d[N2O] + // d()/d[NNH] + dqdci = +k_f * sc[6]; + J[868] += dqdci; // dwdot[H]/d[NNH] + J[870] -= dqdci; // dwdot[O]/d[NNH] + J[876] += dqdci; // dwdot[N2O]/d[NNH] + J[891] -= dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1004] += dqdT; // dwdot[N2O]/dT + J[1019] -= dqdT; // dwdot[NNH]/dT + + // reaction 132: NNH + O <=> NH + NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[27]; + k_f = 520000 * exp(0.388 * logT - (-205.81561631413) * invT); + dlnkfdT = 0.388 * invT + (-205.81561631413) * invT2; + // reverse + phi_r = sc[11] * sc[26]; + Kc = exp(g_RT[6] - g_RT[11] - g_RT[26] + g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[27]) + (h_RT[11] + h_RT[26])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[11] += q; // NO + wdot[26] += q; // NH + wdot[27] -= q; // NNH + // d()/d[O] + dqdci = +k_f * sc[27]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[203] += dqdci; // dwdot[NO]/d[O] + J[218] += dqdci; // dwdot[NH]/d[O] + J[219] -= dqdci; // dwdot[NNH]/d[O] + // d()/d[NO] + dqdci = -k_r * sc[26]; + J[358] -= dqdci; // dwdot[O]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[378] += dqdci; // dwdot[NH]/d[NO] + J[379] -= dqdci; // dwdot[NNH]/d[NO] + // d()/d[NH] + dqdci = -k_r * sc[11]; + J[838] -= dqdci; // dwdot[O]/d[NH] + J[843] += dqdci; // dwdot[NO]/d[NH] + J[858] += dqdci; // dwdot[NH]/d[NH] + J[859] -= dqdci; // dwdot[NNH]/d[NH] + // d()/d[NNH] + dqdci = +k_f * sc[6]; + J[870] -= dqdci; // dwdot[O]/d[NNH] + J[875] += dqdci; // dwdot[NO]/d[NNH] + J[890] += dqdci; // dwdot[NH]/d[NNH] + J[891] -= dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1018] += dqdT; // dwdot[NH]/dT + J[1019] -= dqdT; // dwdot[NNH]/dT + + // reaction 133: NNH + O <=> N2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[27]; + k_f = 12000000 * exp(0.145 * logT - (-109.198016479624) * invT); + dlnkfdT = 0.145 * invT + (-109.198016479624) * invT2; + // reverse + phi_r = sc[1] * sc[8]; + Kc = exp(-g_RT[1] + g_RT[6] - g_RT[8] + g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[27]) + (h_RT[1] + h_RT[8])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[27] -= q; // NNH + // d()/d[N2] + dqdci = -k_r * sc[8]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[38] -= dqdci; // dwdot[O]/d[N2] + J[40] += dqdci; // dwdot[OH]/d[N2] + J[59] -= dqdci; // dwdot[NNH]/d[N2] + // d()/d[O] + dqdci = +k_f * sc[27]; + J[193] += dqdci; // dwdot[N2]/d[O] + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[219] -= dqdci; // dwdot[NNH]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[1]; + J[257] += dqdci; // dwdot[N2]/d[OH] + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[283] -= dqdci; // dwdot[NNH]/d[OH] + // d()/d[NNH] + dqdci = +k_f * sc[6]; + J[865] += dqdci; // dwdot[N2]/d[NNH] + J[870] -= dqdci; // dwdot[O]/d[NNH] + J[872] += dqdci; // dwdot[OH]/d[NNH] + J[891] -= dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1019] -= dqdT; // dwdot[NNH]/dT + + // reaction 134: NNH + OH <=> H2O + N2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[27]; + k_f = 50000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[1] * sc[7]; + Kc = exp(-g_RT[1] - g_RT[7] + g_RT[8] + g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[27]) + (h_RT[1] + h_RT[7])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[27] -= q; // NNH + // d()/d[N2] + dqdci = -k_r * sc[7]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[39] += dqdci; // dwdot[H2O]/d[N2] + J[40] -= dqdci; // dwdot[OH]/d[N2] + J[59] -= dqdci; // dwdot[NNH]/d[N2] + // d()/d[H2O] + dqdci = -k_r * sc[1]; + J[225] += dqdci; // dwdot[N2]/d[H2O] + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[251] -= dqdci; // dwdot[NNH]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[27]; + J[257] += dqdci; // dwdot[N2]/d[OH] + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[283] -= dqdci; // dwdot[NNH]/d[OH] + // d()/d[NNH] + dqdci = +k_f * sc[8]; + J[865] += dqdci; // dwdot[N2]/d[NNH] + J[871] += dqdci; // dwdot[H2O]/d[NNH] + J[872] -= dqdci; // dwdot[OH]/d[NNH] + J[891] -= dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1019] -= dqdT; // dwdot[NNH]/dT + + // reaction 135: NNH + O2 <=> HO2 + N2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[5] * sc[27]; + k_f = 560000000 * exp(-0.385 * logT - (-6.54181665546136) * invT); + dlnkfdT = -0.385 * invT + (-6.54181665546136) * invT2; + // reverse + phi_r = sc[1] * sc[10]; + Kc = exp(-g_RT[1] + g_RT[5] - g_RT[10] + g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[5] + h_RT[27]) + (h_RT[1] + h_RT[10])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[5] -= q; // O2 + wdot[10] += q; // HO2 + wdot[27] -= q; // NNH + // d()/d[N2] + dqdci = -k_r * sc[10]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[37] -= dqdci; // dwdot[O2]/d[N2] + J[42] += dqdci; // dwdot[HO2]/d[N2] + J[59] -= dqdci; // dwdot[NNH]/d[N2] + // d()/d[O2] + dqdci = +k_f * sc[27]; + J[161] += dqdci; // dwdot[N2]/d[O2] + J[165] -= dqdci; // dwdot[O2]/d[O2] + J[170] += dqdci; // dwdot[HO2]/d[O2] + J[187] -= dqdci; // dwdot[NNH]/d[O2] + // d()/d[HO2] + dqdci = -k_r * sc[1]; + J[321] += dqdci; // dwdot[N2]/d[HO2] + J[325] -= dqdci; // dwdot[O2]/d[HO2] + J[330] += dqdci; // dwdot[HO2]/d[HO2] + J[347] -= dqdci; // dwdot[NNH]/d[HO2] + // d()/d[NNH] + dqdci = +k_f * sc[5]; + J[865] += dqdci; // dwdot[N2]/d[NNH] + J[869] -= dqdci; // dwdot[O2]/d[NNH] + J[874] += dqdci; // dwdot[HO2]/d[NNH] + J[891] -= dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + J[1019] -= dqdT; // dwdot[NNH]/dT + + // reaction 136: NH2 + NNH <=> N2 + NH3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[27] * sc[28]; + k_f = 0.92 * exp(1.94 * logT - (-579.655277340457) * invT); + dlnkfdT = 1.94 * invT + (-579.655277340457) * invT2; + // reverse + phi_r = sc[1] * sc[22]; + Kc = exp(-g_RT[1] - g_RT[22] + g_RT[27] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[27] + h_RT[28]) + (h_RT[1] + h_RT[22])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[22] += q; // NH3 + wdot[27] -= q; // NNH + wdot[28] -= q; // NH2 + // d()/d[N2] + dqdci = -k_r * sc[22]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[54] += dqdci; // dwdot[NH3]/d[N2] + J[59] -= dqdci; // dwdot[NNH]/d[N2] + J[60] -= dqdci; // dwdot[NH2]/d[N2] + // d()/d[NH3] + dqdci = -k_r * sc[1]; + J[705] += dqdci; // dwdot[N2]/d[NH3] + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[731] -= dqdci; // dwdot[NNH]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NNH] + dqdci = +k_f * sc[28]; + J[865] += dqdci; // dwdot[N2]/d[NNH] + J[886] += dqdci; // dwdot[NH3]/d[NNH] + J[891] -= dqdci; // dwdot[NNH]/d[NNH] + J[892] -= dqdci; // dwdot[NH2]/d[NNH] + // d()/d[NH2] + dqdci = +k_f * sc[27]; + J[897] += dqdci; // dwdot[N2]/d[NH2] + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[923] -= dqdci; // dwdot[NNH]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1019] -= dqdT; // dwdot[NNH]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 137: HO2 + NNH <=> H2O2 + N2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[27]; + k_f = 0.014 * exp(2.69 * logT - (-804.895056954649) * invT); + dlnkfdT = 2.69 * invT + (-804.895056954649) * invT2; + // reverse + phi_r = sc[1] * sc[9]; + Kc = exp(-g_RT[1] - g_RT[9] + g_RT[10] + g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[27]) + (h_RT[1] + h_RT[9])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[9] += q; // H2O2 + wdot[10] -= q; // HO2 + wdot[27] -= q; // NNH + // d()/d[N2] + dqdci = -k_r * sc[9]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[41] += dqdci; // dwdot[H2O2]/d[N2] + J[42] -= dqdci; // dwdot[HO2]/d[N2] + J[59] -= dqdci; // dwdot[NNH]/d[N2] + // d()/d[H2O2] + dqdci = -k_r * sc[1]; + J[289] += dqdci; // dwdot[N2]/d[H2O2] + J[297] += dqdci; // dwdot[H2O2]/d[H2O2] + J[298] -= dqdci; // dwdot[HO2]/d[H2O2] + J[315] -= dqdci; // dwdot[NNH]/d[H2O2] + // d()/d[HO2] + dqdci = +k_f * sc[27]; + J[321] += dqdci; // dwdot[N2]/d[HO2] + J[329] += dqdci; // dwdot[H2O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[347] -= dqdci; // dwdot[NNH]/d[HO2] + // d()/d[NNH] + dqdci = +k_f * sc[10]; + J[865] += dqdci; // dwdot[N2]/d[NNH] + J[873] += dqdci; // dwdot[H2O2]/d[NNH] + J[874] -= dqdci; // dwdot[HO2]/d[NNH] + J[891] -= dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[1001] += dqdT; // dwdot[H2O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1019] -= dqdT; // dwdot[NNH]/dT + + // reaction 138: NNH + NO <=> HNO + N2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[11] * sc[27]; + k_f = 50000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[1] * sc[14]; + Kc = exp(-g_RT[1] + g_RT[11] - g_RT[14] + g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[11] + h_RT[27]) + (h_RT[1] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[11] -= q; // NO + wdot[14] += q; // HNO + wdot[27] -= q; // NNH + // d()/d[N2] + dqdci = -k_r * sc[14]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[43] -= dqdci; // dwdot[NO]/d[N2] + J[46] += dqdci; // dwdot[HNO]/d[N2] + J[59] -= dqdci; // dwdot[NNH]/d[N2] + // d()/d[NO] + dqdci = +k_f * sc[27]; + J[353] += dqdci; // dwdot[N2]/d[NO] + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[366] += dqdci; // dwdot[HNO]/d[NO] + J[379] -= dqdci; // dwdot[NNH]/d[NO] + // d()/d[HNO] + dqdci = -k_r * sc[1]; + J[449] += dqdci; // dwdot[N2]/d[HNO] + J[459] -= dqdci; // dwdot[NO]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[475] -= dqdci; // dwdot[NNH]/d[HNO] + // d()/d[NNH] + dqdci = +k_f * sc[11]; + J[865] += dqdci; // dwdot[N2]/d[NNH] + J[875] -= dqdci; // dwdot[NO]/d[NNH] + J[878] += dqdci; // dwdot[HNO]/d[NNH] + J[891] -= dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1019] -= dqdT; // dwdot[NNH]/dT + + // reaction 139: HO2 + NO <=> NO2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[11]; + k_f = 2110000 * exp(-(-241.543999586265) * invT); + dlnkfdT = (-241.543999586265) * invT2; + // reverse + phi_r = sc[8] * sc[13]; + Kc = exp(-g_RT[8] + g_RT[10] + g_RT[11] - g_RT[13]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[11]) + (h_RT[8] + h_RT[13])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[8] += q; // OH + wdot[10] -= q; // HO2 + wdot[11] -= q; // NO + wdot[13] += q; // NO2 + // d()/d[OH] + dqdci = -k_r * sc[13]; + J[264] += dqdci; // dwdot[OH]/d[OH] + J[266] -= dqdci; // dwdot[HO2]/d[OH] + J[267] -= dqdci; // dwdot[NO]/d[OH] + J[269] += dqdci; // dwdot[NO2]/d[OH] + // d()/d[HO2] + dqdci = +k_f * sc[11]; + J[328] += dqdci; // dwdot[OH]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[331] -= dqdci; // dwdot[NO]/d[HO2] + J[333] += dqdci; // dwdot[NO2]/d[HO2] + // d()/d[NO] + dqdci = +k_f * sc[10]; + J[360] += dqdci; // dwdot[OH]/d[NO] + J[362] -= dqdci; // dwdot[HO2]/d[NO] + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[365] += dqdci; // dwdot[NO2]/d[NO] + // d()/d[NO2] + dqdci = -k_r * sc[8]; + J[424] += dqdci; // dwdot[OH]/d[NO2] + J[426] -= dqdci; // dwdot[HO2]/d[NO2] + J[427] -= dqdci; // dwdot[NO]/d[NO2] + J[429] += dqdci; // dwdot[NO2]/d[NO2] + // d()/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + + // reaction 141: NO + OH <=> HONO + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[8] * sc[11]; + k_f = 3.06167047673713e+17 * + exp(-4.17057130369966 * logT - (814.305516509223) * invT); + dlnkfdT = -4.17057130369966 * invT + (814.305516509223) * invT2; + // reverse + phi_r = sc[16]; + Kc = refCinv * exp(g_RT[8] + g_RT[11] - g_RT[16]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[11]) + (h_RT[16]) + 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[8] -= q; // OH + wdot[11] -= q; // NO + wdot[16] += q; // HONO + // d()/d[OH] + dqdci = +k_f * sc[11]; + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[267] -= dqdci; // dwdot[NO]/d[OH] + J[272] += dqdci; // dwdot[HONO]/d[OH] + // d()/d[NO] + dqdci = +k_f * sc[8]; + J[360] -= dqdci; // dwdot[OH]/d[NO] + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[368] += dqdci; // dwdot[HONO]/d[NO] + // d()/d[HONO] + dqdci = -k_r; + J[520] -= dqdci; // dwdot[OH]/d[HONO] + J[523] -= dqdci; // dwdot[NO]/d[HONO] + J[528] += dqdci; // dwdot[HONO]/d[HONO] + // d()/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1008] += dqdT; // dwdot[HONO]/dT + + // reaction 142: HNO <=> H + NO + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[14]; + k_f = 1.80302380411298e+20 * + exp(-3.00807431596138 * logT - (24093.7608096018) * invT); + dlnkfdT = -3.00807431596138 * invT + (24093.7608096018) * invT2; + // reverse + phi_r = sc[4] * sc[11]; + Kc = refC * exp(-g_RT[4] - g_RT[11] + g_RT[14]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[14]) + (h_RT[4] + h_RT[11]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[11] += q; // NO + wdot[14] -= q; // HNO + // d()/d[H] + dqdci = -k_r * sc[11]; + J[132] += dqdci; // dwdot[H]/d[H] + J[139] += dqdci; // dwdot[NO]/d[H] + J[142] -= dqdci; // dwdot[HNO]/d[H] + // d()/d[NO] + dqdci = -k_r * sc[4]; + J[356] += dqdci; // dwdot[H]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[366] -= dqdci; // dwdot[HNO]/d[NO] + // d()/d[HNO] + dqdci = +k_f; + J[452] += dqdci; // dwdot[H]/d[HNO] + J[459] += dqdci; // dwdot[NO]/d[HNO] + J[462] -= dqdci; // dwdot[HNO]/d[HNO] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1006] -= dqdT; // dwdot[HNO]/dT + + // reaction 143: H + HNO <=> H2 + NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[14]; + k_f = 968000 * exp(0.62 * logT - (181.157999689699) * invT); + dlnkfdT = 0.62 * invT + (181.157999689699) * invT2; + // reverse + phi_r = sc[3] * sc[11]; + Kc = exp(-g_RT[3] + g_RT[4] - g_RT[11] + g_RT[14]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[14]) + (h_RT[3] + h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[11] += q; // NO + wdot[14] -= q; // HNO + // d()/d[H2] + dqdci = -k_r * sc[11]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[107] += dqdci; // dwdot[NO]/d[H2] + J[110] -= dqdci; // dwdot[HNO]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[14]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[139] += dqdci; // dwdot[NO]/d[H] + J[142] -= dqdci; // dwdot[HNO]/d[H] + // d()/d[NO] + dqdci = -k_r * sc[3]; + J[355] += dqdci; // dwdot[H2]/d[NO] + J[356] -= dqdci; // dwdot[H]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[366] -= dqdci; // dwdot[HNO]/d[NO] + // d()/d[HNO] + dqdci = +k_f * sc[4]; + J[451] += dqdci; // dwdot[H2]/d[HNO] + J[452] -= dqdci; // dwdot[H]/d[HNO] + J[459] += dqdci; // dwdot[NO]/d[HNO] + J[462] -= dqdci; // dwdot[HNO]/d[HNO] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1006] -= dqdT; // dwdot[HNO]/dT + + // reaction 144: HNO + O <=> NO + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[14]; + k_f = 22900000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[8] * sc[11]; + Kc = exp(g_RT[6] - g_RT[8] - g_RT[11] + g_RT[14]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[14]) + (h_RT[8] + h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[11] += q; // NO + wdot[14] -= q; // HNO + // d()/d[O] + dqdci = +k_f * sc[14]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[203] += dqdci; // dwdot[NO]/d[O] + J[206] -= dqdci; // dwdot[HNO]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[11]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[267] += dqdci; // dwdot[NO]/d[OH] + J[270] -= dqdci; // dwdot[HNO]/d[OH] + // d()/d[NO] + dqdci = -k_r * sc[8]; + J[358] -= dqdci; // dwdot[O]/d[NO] + J[360] += dqdci; // dwdot[OH]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[366] -= dqdci; // dwdot[HNO]/d[NO] + // d()/d[HNO] + dqdci = +k_f * sc[6]; + J[454] -= dqdci; // dwdot[O]/d[HNO] + J[456] += dqdci; // dwdot[OH]/d[HNO] + J[459] += dqdci; // dwdot[NO]/d[HNO] + J[462] -= dqdci; // dwdot[HNO]/d[HNO] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1006] -= dqdT; // dwdot[HNO]/dT + + // reaction 145: HNO + OH <=> H + HONO + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[8] * sc[14]; + k_f = 0.00147617423719835 * + exp(2.72022852147986 * logT - (2291.20021238776) * invT); + dlnkfdT = 2.72022852147986 * invT + (2291.20021238776) * invT2; + // reverse + phi_r = sc[4] * sc[16]; + Kc = exp(-g_RT[4] + g_RT[8] + g_RT[14] - g_RT[16]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[14]) + (h_RT[4] + h_RT[16])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[8] -= q; // OH + wdot[14] -= q; // HNO + wdot[16] += q; // HONO + // d()/d[H] + dqdci = -k_r * sc[16]; + J[132] += dqdci; // dwdot[H]/d[H] + J[136] -= dqdci; // dwdot[OH]/d[H] + J[142] -= dqdci; // dwdot[HNO]/d[H] + J[144] += dqdci; // dwdot[HONO]/d[H] + // d()/d[OH] + dqdci = +k_f * sc[14]; + J[260] += dqdci; // dwdot[H]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[270] -= dqdci; // dwdot[HNO]/d[OH] + J[272] += dqdci; // dwdot[HONO]/d[OH] + // d()/d[HNO] + dqdci = +k_f * sc[8]; + J[452] += dqdci; // dwdot[H]/d[HNO] + J[456] -= dqdci; // dwdot[OH]/d[HNO] + J[462] -= dqdci; // dwdot[HNO]/d[HNO] + J[464] += dqdci; // dwdot[HONO]/d[HNO] + // d()/d[HONO] + dqdci = -k_r * sc[4]; + J[516] += dqdci; // dwdot[H]/d[HONO] + J[520] -= dqdci; // dwdot[OH]/d[HONO] + J[526] -= dqdci; // dwdot[HNO]/d[HONO] + J[528] += dqdci; // dwdot[HONO]/d[HONO] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1006] -= dqdT; // dwdot[HNO]/dT + J[1008] += dqdT; // dwdot[HONO]/dT + + // reaction 146: HNO + OH <=> H2O + NO + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[8] * sc[14]; + k_f = + 62955.2322092157 * exp(0.390114260739931 * logT - (1903.061933838) * invT); + dlnkfdT = 0.390114260739931 * invT + (1903.061933838) * invT2; + // reverse + phi_r = sc[7] * sc[11]; + Kc = exp(-g_RT[7] + g_RT[8] - g_RT[11] + g_RT[14]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[14]) + (h_RT[7] + h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[11] += q; // NO + wdot[14] -= q; // HNO + // d()/d[H2O] + dqdci = -k_r * sc[11]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[235] += dqdci; // dwdot[NO]/d[H2O] + J[238] -= dqdci; // dwdot[HNO]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[14]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[267] += dqdci; // dwdot[NO]/d[OH] + J[270] -= dqdci; // dwdot[HNO]/d[OH] + // d()/d[NO] + dqdci = -k_r * sc[7]; + J[359] += dqdci; // dwdot[H2O]/d[NO] + J[360] -= dqdci; // dwdot[OH]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[366] -= dqdci; // dwdot[HNO]/d[NO] + // d()/d[HNO] + dqdci = +k_f * sc[8]; + J[455] += dqdci; // dwdot[H2O]/d[HNO] + J[456] -= dqdci; // dwdot[OH]/d[HNO] + J[459] += dqdci; // dwdot[NO]/d[HNO] + J[462] -= dqdci; // dwdot[HNO]/d[HNO] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1006] -= dqdT; // dwdot[HNO]/dT + + // reaction 147: HNO + O2 <=> HO2 + NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[5] * sc[14]; + k_f = 20000000 * exp(-(7495.9154538271) * invT); + dlnkfdT = (7495.9154538271) * invT2; + // reverse + phi_r = sc[10] * sc[11]; + Kc = exp(g_RT[5] - g_RT[10] - g_RT[11] + g_RT[14]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[5] + h_RT[14]) + (h_RT[10] + h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] -= q; // O2 + wdot[10] += q; // HO2 + wdot[11] += q; // NO + wdot[14] -= q; // HNO + // d()/d[O2] + dqdci = +k_f * sc[14]; + J[165] -= dqdci; // dwdot[O2]/d[O2] + J[170] += dqdci; // dwdot[HO2]/d[O2] + J[171] += dqdci; // dwdot[NO]/d[O2] + J[174] -= dqdci; // dwdot[HNO]/d[O2] + // d()/d[HO2] + dqdci = -k_r * sc[11]; + J[325] -= dqdci; // dwdot[O2]/d[HO2] + J[330] += dqdci; // dwdot[HO2]/d[HO2] + J[331] += dqdci; // dwdot[NO]/d[HO2] + J[334] -= dqdci; // dwdot[HNO]/d[HO2] + // d()/d[NO] + dqdci = -k_r * sc[10]; + J[357] -= dqdci; // dwdot[O2]/d[NO] + J[362] += dqdci; // dwdot[HO2]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[366] -= dqdci; // dwdot[HNO]/d[NO] + // d()/d[HNO] + dqdci = +k_f * sc[5]; + J[453] -= dqdci; // dwdot[O2]/d[HNO] + J[458] += dqdci; // dwdot[HO2]/d[HNO] + J[459] += dqdci; // dwdot[NO]/d[HNO] + J[462] -= dqdci; // dwdot[HNO]/d[HNO] + // d()/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1006] -= dqdT; // dwdot[HNO]/dT + + // reaction 148: HNO + NH2 <=> NH3 + NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[14] * sc[28]; + k_f = 36.7 * exp(1.63 * logT - (-629.0208322559) * invT); + dlnkfdT = 1.63 * invT + (-629.0208322559) * invT2; + // reverse + phi_r = sc[11] * sc[22]; + Kc = exp(-g_RT[11] + g_RT[14] - g_RT[22] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[14] + h_RT[28]) + (h_RT[11] + h_RT[22])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[11] += q; // NO + wdot[14] -= q; // HNO + wdot[22] += q; // NH3 + wdot[28] -= q; // NH2 + // d()/d[NO] + dqdci = -k_r * sc[22]; + J[363] += dqdci; // dwdot[NO]/d[NO] + J[366] -= dqdci; // dwdot[HNO]/d[NO] + J[374] += dqdci; // dwdot[NH3]/d[NO] + J[380] -= dqdci; // dwdot[NH2]/d[NO] + // d()/d[HNO] + dqdci = +k_f * sc[28]; + J[459] += dqdci; // dwdot[NO]/d[HNO] + J[462] -= dqdci; // dwdot[HNO]/d[HNO] + J[470] += dqdci; // dwdot[NH3]/d[HNO] + J[476] -= dqdci; // dwdot[NH2]/d[HNO] + // d()/d[NH3] + dqdci = -k_r * sc[11]; + J[715] += dqdci; // dwdot[NO]/d[NH3] + J[718] -= dqdci; // dwdot[HNO]/d[NH3] + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NH2] + dqdci = +k_f * sc[14]; + J[907] += dqdci; // dwdot[NO]/d[NH2] + J[910] -= dqdci; // dwdot[HNO]/d[NH2] + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1006] -= dqdT; // dwdot[HNO]/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 149: HNO + NO <=> N2O + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[11] * sc[14]; + k_f = 8510000 * exp(-(14900.2454744777) * invT); + dlnkfdT = (14900.2454744777) * invT2; + // reverse + phi_r = sc[8] * sc[12]; + Kc = exp(-g_RT[8] + g_RT[11] - g_RT[12] + g_RT[14]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[11] + h_RT[14]) + (h_RT[8] + h_RT[12])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[8] += q; // OH + wdot[11] -= q; // NO + wdot[12] += q; // N2O + wdot[14] -= q; // HNO + // d()/d[OH] + dqdci = -k_r * sc[12]; + J[264] += dqdci; // dwdot[OH]/d[OH] + J[267] -= dqdci; // dwdot[NO]/d[OH] + J[268] += dqdci; // dwdot[N2O]/d[OH] + J[270] -= dqdci; // dwdot[HNO]/d[OH] + // d()/d[NO] + dqdci = +k_f * sc[14]; + J[360] += dqdci; // dwdot[OH]/d[NO] + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[364] += dqdci; // dwdot[N2O]/d[NO] + J[366] -= dqdci; // dwdot[HNO]/d[NO] + // d()/d[N2O] + dqdci = -k_r * sc[8]; + J[392] += dqdci; // dwdot[OH]/d[N2O] + J[395] -= dqdci; // dwdot[NO]/d[N2O] + J[396] += dqdci; // dwdot[N2O]/d[N2O] + J[398] -= dqdci; // dwdot[HNO]/d[N2O] + // d()/d[HNO] + dqdci = +k_f * sc[11]; + J[456] += dqdci; // dwdot[OH]/d[HNO] + J[459] -= dqdci; // dwdot[NO]/d[HNO] + J[460] += dqdci; // dwdot[N2O]/d[HNO] + J[462] -= dqdci; // dwdot[HNO]/d[HNO] + // d()/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1004] += dqdT; // dwdot[N2O]/dT + J[1006] -= dqdT; // dwdot[HNO]/dT + + // reaction 150: HNO + NO2 <=> HONO + NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[13] * sc[14]; + k_f = 0.0442 * exp(2.64 * logT - (2033.80047651635) * invT); + dlnkfdT = 2.64 * invT + (2033.80047651635) * invT2; + // reverse + phi_r = sc[11] * sc[16]; + Kc = exp(-g_RT[11] + g_RT[13] + g_RT[14] - g_RT[16]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[13] + h_RT[14]) + (h_RT[11] + h_RT[16])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[11] += q; // NO + wdot[13] -= q; // NO2 + wdot[14] -= q; // HNO + wdot[16] += q; // HONO + // d()/d[NO] + dqdci = -k_r * sc[16]; + J[363] += dqdci; // dwdot[NO]/d[NO] + J[365] -= dqdci; // dwdot[NO2]/d[NO] + J[366] -= dqdci; // dwdot[HNO]/d[NO] + J[368] += dqdci; // dwdot[HONO]/d[NO] + // d()/d[NO2] + dqdci = +k_f * sc[14]; + J[427] += dqdci; // dwdot[NO]/d[NO2] + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[430] -= dqdci; // dwdot[HNO]/d[NO2] + J[432] += dqdci; // dwdot[HONO]/d[NO2] + // d()/d[HNO] + dqdci = +k_f * sc[13]; + J[459] += dqdci; // dwdot[NO]/d[HNO] + J[461] -= dqdci; // dwdot[NO2]/d[HNO] + J[462] -= dqdci; // dwdot[HNO]/d[HNO] + J[464] += dqdci; // dwdot[HONO]/d[HNO] + // d()/d[HONO] + dqdci = -k_r * sc[11]; + J[523] += dqdci; // dwdot[NO]/d[HONO] + J[525] -= dqdci; // dwdot[NO2]/d[HONO] + J[526] -= dqdci; // dwdot[HNO]/d[HONO] + J[528] += dqdci; // dwdot[HONO]/d[HONO] + // d()/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1006] -= dqdT; // dwdot[HNO]/dT + J[1008] += dqdT; // dwdot[HONO]/dT + + // reaction 151: HNO + NO2 <=> HNO2 + NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[13] * sc[14]; + k_f = 603000 * exp(-(1001.40116495139) * invT); + dlnkfdT = (1001.40116495139) * invT2; + // reverse + phi_r = sc[11] * sc[15]; + Kc = exp(-g_RT[11] + g_RT[13] + g_RT[14] - g_RT[15]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[13] + h_RT[14]) + (h_RT[11] + h_RT[15])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[11] += q; // NO + wdot[13] -= q; // NO2 + wdot[14] -= q; // HNO + wdot[15] += q; // HNO2 + // d()/d[NO] + dqdci = -k_r * sc[15]; + J[363] += dqdci; // dwdot[NO]/d[NO] + J[365] -= dqdci; // dwdot[NO2]/d[NO] + J[366] -= dqdci; // dwdot[HNO]/d[NO] + J[367] += dqdci; // dwdot[HNO2]/d[NO] + // d()/d[NO2] + dqdci = +k_f * sc[14]; + J[427] += dqdci; // dwdot[NO]/d[NO2] + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[430] -= dqdci; // dwdot[HNO]/d[NO2] + J[431] += dqdci; // dwdot[HNO2]/d[NO2] + // d()/d[HNO] + dqdci = +k_f * sc[13]; + J[459] += dqdci; // dwdot[NO]/d[HNO] + J[461] -= dqdci; // dwdot[NO2]/d[HNO] + J[462] -= dqdci; // dwdot[HNO]/d[HNO] + J[463] += dqdci; // dwdot[HNO2]/d[HNO] + // d()/d[HNO2] + dqdci = -k_r * sc[11]; + J[491] += dqdci; // dwdot[NO]/d[HNO2] + J[493] -= dqdci; // dwdot[NO2]/d[HNO2] + J[494] -= dqdci; // dwdot[HNO]/d[HNO2] + J[495] += dqdci; // dwdot[HNO2]/d[HNO2] + // d()/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1006] -= dqdT; // dwdot[HNO]/dT + J[1007] += dqdT; // dwdot[HNO2]/dT + + // reaction 152: 2 HNO <=> H2O + N2O + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = (sc[14] * sc[14]); + k_f = 843 * exp(-(1559.97166399463) * invT); + dlnkfdT = (1559.97166399463) * invT2; + // reverse + phi_r = sc[7] * sc[12]; + Kc = exp(-g_RT[7] - g_RT[12] + 2.000000 * g_RT[14]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(2.000000 * h_RT[14]) + (h_RT[7] + h_RT[12])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[12] += q; // N2O + wdot[14] -= 2 * q; // HNO + // d()/d[H2O] + dqdci = -k_r * sc[12]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[236] += dqdci; // dwdot[N2O]/d[H2O] + J[238] += -2 * dqdci; // dwdot[HNO]/d[H2O] + // d()/d[N2O] + dqdci = -k_r * sc[7]; + J[391] += dqdci; // dwdot[H2O]/d[N2O] + J[396] += dqdci; // dwdot[N2O]/d[N2O] + J[398] += -2 * dqdci; // dwdot[HNO]/d[N2O] + // d()/d[HNO] + dqdci = +k_f * 2.000000 * sc[14]; + J[455] += dqdci; // dwdot[H2O]/d[HNO] + J[460] += dqdci; // dwdot[N2O]/d[HNO] + J[462] += -2 * dqdci; // dwdot[HNO]/d[HNO] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1004] += dqdT; // dwdot[N2O]/dT + J[1006] += -2 * dqdT; // dwdot[HNO]/dT + + // reaction 153: HNO + HO2 <=> HNO2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[14]; + k_f = 0.002 * exp(2.36 * logT - (4518.88565892638) * invT); + dlnkfdT = 2.36 * invT + (4518.88565892638) * invT2; + // reverse + phi_r = sc[8] * sc[15]; + Kc = exp(-g_RT[8] + g_RT[10] + g_RT[14] - g_RT[15]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[14]) + (h_RT[8] + h_RT[15])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[8] += q; // OH + wdot[10] -= q; // HO2 + wdot[14] -= q; // HNO + wdot[15] += q; // HNO2 + // d()/d[OH] + dqdci = -k_r * sc[15]; + J[264] += dqdci; // dwdot[OH]/d[OH] + J[266] -= dqdci; // dwdot[HO2]/d[OH] + J[270] -= dqdci; // dwdot[HNO]/d[OH] + J[271] += dqdci; // dwdot[HNO2]/d[OH] + // d()/d[HO2] + dqdci = +k_f * sc[14]; + J[328] += dqdci; // dwdot[OH]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[334] -= dqdci; // dwdot[HNO]/d[HO2] + J[335] += dqdci; // dwdot[HNO2]/d[HO2] + // d()/d[HNO] + dqdci = +k_f * sc[10]; + J[456] += dqdci; // dwdot[OH]/d[HNO] + J[458] -= dqdci; // dwdot[HO2]/d[HNO] + J[462] -= dqdci; // dwdot[HNO]/d[HNO] + J[463] += dqdci; // dwdot[HNO2]/d[HNO] + // d()/d[HNO2] + dqdci = -k_r * sc[8]; + J[488] += dqdci; // dwdot[OH]/d[HNO2] + J[490] -= dqdci; // dwdot[HO2]/d[HNO2] + J[494] -= dqdci; // dwdot[HNO]/d[HNO2] + J[495] += dqdci; // dwdot[HNO2]/d[HNO2] + // d()/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1006] -= dqdT; // dwdot[HNO]/dT + J[1007] += dqdT; // dwdot[HNO2]/dT + + // reaction 154: H + HONO <=> H2 + NO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[16]; + k_f = 0.00189 * exp(2.83 * logT - (715.926350440375) * invT); + dlnkfdT = 2.83 * invT + (715.926350440375) * invT2; + // reverse + phi_r = sc[3] * sc[13]; + Kc = exp(-g_RT[3] + g_RT[4] - g_RT[13] + g_RT[16]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[16]) + (h_RT[3] + h_RT[13])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[13] += q; // NO2 + wdot[16] -= q; // HONO + // d()/d[H2] + dqdci = -k_r * sc[13]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[109] += dqdci; // dwdot[NO2]/d[H2] + J[112] -= dqdci; // dwdot[HONO]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[16]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[141] += dqdci; // dwdot[NO2]/d[H] + J[144] -= dqdci; // dwdot[HONO]/d[H] + // d()/d[NO2] + dqdci = -k_r * sc[3]; + J[419] += dqdci; // dwdot[H2]/d[NO2] + J[420] -= dqdci; // dwdot[H]/d[NO2] + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[432] -= dqdci; // dwdot[HONO]/d[NO2] + // d()/d[HONO] + dqdci = +k_f * sc[4]; + J[515] += dqdci; // dwdot[H2]/d[HONO] + J[516] -= dqdci; // dwdot[H]/d[HONO] + J[525] += dqdci; // dwdot[NO2]/d[HONO] + J[528] -= dqdci; // dwdot[HONO]/d[HONO] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1008] -= dqdT; // dwdot[HONO]/dT + + // reaction 155: H + HNO2 <=> H2 + NO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[15]; + k_f = 0.0233 * exp(2.77 * logT - (-1017.45377659056) * invT); + dlnkfdT = 2.77 * invT + (-1017.45377659056) * invT2; + // reverse + phi_r = sc[3] * sc[13]; + Kc = exp(-g_RT[3] + g_RT[4] - g_RT[13] + g_RT[15]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[15]) + (h_RT[3] + h_RT[13])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[13] += q; // NO2 + wdot[15] -= q; // HNO2 + // d()/d[H2] + dqdci = -k_r * sc[13]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[109] += dqdci; // dwdot[NO2]/d[H2] + J[111] -= dqdci; // dwdot[HNO2]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[15]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[141] += dqdci; // dwdot[NO2]/d[H] + J[143] -= dqdci; // dwdot[HNO2]/d[H] + // d()/d[NO2] + dqdci = -k_r * sc[3]; + J[419] += dqdci; // dwdot[H2]/d[NO2] + J[420] -= dqdci; // dwdot[H]/d[NO2] + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[431] -= dqdci; // dwdot[HNO2]/d[NO2] + // d()/d[HNO2] + dqdci = +k_f * sc[4]; + J[483] += dqdci; // dwdot[H2]/d[HNO2] + J[484] -= dqdci; // dwdot[H]/d[HNO2] + J[493] += dqdci; // dwdot[NO2]/d[HNO2] + J[495] -= dqdci; // dwdot[HNO2]/d[HNO2] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1007] -= dqdT; // dwdot[HNO2]/dT + + // reaction 156: H + HONO <=> H2O + NO + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[4] * sc[16]; + k_f = 4296.07864215026 * + exp(0.980114260739931 * logT - (2047.98258379891) * invT); + dlnkfdT = 0.980114260739931 * invT + (2047.98258379891) * invT2; + // reverse + phi_r = sc[7] * sc[11]; + Kc = exp(g_RT[4] - g_RT[7] - g_RT[11] + g_RT[16]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[16]) + (h_RT[7] + h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] -= q; // H + wdot[7] += q; // H2O + wdot[11] += q; // NO + wdot[16] -= q; // HONO + // d()/d[H] + dqdci = +k_f * sc[16]; + J[132] -= dqdci; // dwdot[H]/d[H] + J[135] += dqdci; // dwdot[H2O]/d[H] + J[139] += dqdci; // dwdot[NO]/d[H] + J[144] -= dqdci; // dwdot[HONO]/d[H] + // d()/d[H2O] + dqdci = -k_r * sc[11]; + J[228] -= dqdci; // dwdot[H]/d[H2O] + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[235] += dqdci; // dwdot[NO]/d[H2O] + J[240] -= dqdci; // dwdot[HONO]/d[H2O] + // d()/d[NO] + dqdci = -k_r * sc[7]; + J[356] -= dqdci; // dwdot[H]/d[NO] + J[359] += dqdci; // dwdot[H2O]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[368] -= dqdci; // dwdot[HONO]/d[NO] + // d()/d[HONO] + dqdci = +k_f * sc[4]; + J[516] -= dqdci; // dwdot[H]/d[HONO] + J[519] += dqdci; // dwdot[H2O]/d[HONO] + J[523] += dqdci; // dwdot[NO]/d[HONO] + J[528] -= dqdci; // dwdot[HONO]/d[HONO] + // d()/dT + J[996] -= dqdT; // dwdot[H]/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1008] -= dqdT; // dwdot[HONO]/dT + + // reaction 157: HONO + O <=> NO2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[16]; + k_f = 12100000 * exp(-(2999.17132819613) * invT); + dlnkfdT = (2999.17132819613) * invT2; + // reverse + phi_r = sc[8] * sc[13]; + Kc = exp(g_RT[6] - g_RT[8] - g_RT[13] + g_RT[16]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[16]) + (h_RT[8] + h_RT[13])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[13] += q; // NO2 + wdot[16] -= q; // HONO + // d()/d[O] + dqdci = +k_f * sc[16]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[205] += dqdci; // dwdot[NO2]/d[O] + J[208] -= dqdci; // dwdot[HONO]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[13]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[269] += dqdci; // dwdot[NO2]/d[OH] + J[272] -= dqdci; // dwdot[HONO]/d[OH] + // d()/d[NO2] + dqdci = -k_r * sc[8]; + J[422] -= dqdci; // dwdot[O]/d[NO2] + J[424] += dqdci; // dwdot[OH]/d[NO2] + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[432] -= dqdci; // dwdot[HONO]/d[NO2] + // d()/d[HONO] + dqdci = +k_f * sc[6]; + J[518] -= dqdci; // dwdot[O]/d[HONO] + J[520] += dqdci; // dwdot[OH]/d[HONO] + J[525] += dqdci; // dwdot[NO2]/d[HONO] + J[528] -= dqdci; // dwdot[HONO]/d[HONO] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1008] -= dqdT; // dwdot[HONO]/dT + + // reaction 158: HONO + OH <=> H2O + NO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[16]; + k_f = 1700000 * exp(-(-261.672666218454) * invT); + dlnkfdT = (-261.672666218454) * invT2; + // reverse + phi_r = sc[7] * sc[13]; + Kc = exp(-g_RT[7] + g_RT[8] - g_RT[13] + g_RT[16]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[16]) + (h_RT[7] + h_RT[13])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[13] += q; // NO2 + wdot[16] -= q; // HONO + // d()/d[H2O] + dqdci = -k_r * sc[13]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[237] += dqdci; // dwdot[NO2]/d[H2O] + J[240] -= dqdci; // dwdot[HONO]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[16]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[269] += dqdci; // dwdot[NO2]/d[OH] + J[272] -= dqdci; // dwdot[HONO]/d[OH] + // d()/d[NO2] + dqdci = -k_r * sc[7]; + J[423] += dqdci; // dwdot[H2O]/d[NO2] + J[424] -= dqdci; // dwdot[OH]/d[NO2] + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[432] -= dqdci; // dwdot[HONO]/d[NO2] + // d()/d[HONO] + dqdci = +k_f * sc[8]; + J[519] += dqdci; // dwdot[H2O]/d[HONO] + J[520] -= dqdci; // dwdot[OH]/d[HONO] + J[525] += dqdci; // dwdot[NO2]/d[HONO] + J[528] -= dqdci; // dwdot[HONO]/d[HONO] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1008] -= dqdT; // dwdot[HONO]/dT + + // reaction 159: HONO + NH <=> NH2 + NO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[16] * sc[26]; + k_f = 10000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[13] * sc[28]; + Kc = exp(-g_RT[13] + g_RT[16] + g_RT[26] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[16] + h_RT[26]) + (h_RT[13] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[13] += q; // NO2 + wdot[16] -= q; // HONO + wdot[26] -= q; // NH + wdot[28] += q; // NH2 + // d()/d[NO2] + dqdci = -k_r * sc[28]; + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[432] -= dqdci; // dwdot[HONO]/d[NO2] + J[442] -= dqdci; // dwdot[NH]/d[NO2] + J[444] += dqdci; // dwdot[NH2]/d[NO2] + // d()/d[HONO] + dqdci = +k_f * sc[26]; + J[525] += dqdci; // dwdot[NO2]/d[HONO] + J[528] -= dqdci; // dwdot[HONO]/d[HONO] + J[538] -= dqdci; // dwdot[NH]/d[HONO] + J[540] += dqdci; // dwdot[NH2]/d[HONO] + // d()/d[NH] + dqdci = +k_f * sc[16]; + J[845] += dqdci; // dwdot[NO2]/d[NH] + J[848] -= dqdci; // dwdot[HONO]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + J[860] += dqdci; // dwdot[NH2]/d[NH] + // d()/d[NH2] + dqdci = -k_r * sc[13]; + J[909] += dqdci; // dwdot[NO2]/d[NH2] + J[912] -= dqdci; // dwdot[HONO]/d[NH2] + J[922] -= dqdci; // dwdot[NH]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1008] -= dqdT; // dwdot[HONO]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 160: HONO + NH2 <=> NH3 + NO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[16] * sc[28]; + k_f = 0.000317 * exp(2.83 * logT - (-1796.48349692285) * invT); + dlnkfdT = 2.83 * invT + (-1796.48349692285) * invT2; + // reverse + phi_r = sc[13] * sc[22]; + Kc = exp(-g_RT[13] + g_RT[16] - g_RT[22] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[16] + h_RT[28]) + (h_RT[13] + h_RT[22])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[13] += q; // NO2 + wdot[16] -= q; // HONO + wdot[22] += q; // NH3 + wdot[28] -= q; // NH2 + // d()/d[NO2] + dqdci = -k_r * sc[22]; + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[432] -= dqdci; // dwdot[HONO]/d[NO2] + J[438] += dqdci; // dwdot[NH3]/d[NO2] + J[444] -= dqdci; // dwdot[NH2]/d[NO2] + // d()/d[HONO] + dqdci = +k_f * sc[28]; + J[525] += dqdci; // dwdot[NO2]/d[HONO] + J[528] -= dqdci; // dwdot[HONO]/d[HONO] + J[534] += dqdci; // dwdot[NH3]/d[HONO] + J[540] -= dqdci; // dwdot[NH2]/d[HONO] + // d()/d[NH3] + dqdci = -k_r * sc[13]; + J[717] += dqdci; // dwdot[NO2]/d[NH3] + J[720] -= dqdci; // dwdot[HONO]/d[NH3] + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NH2] + dqdci = +k_f * sc[16]; + J[909] += dqdci; // dwdot[NO2]/d[NH2] + J[912] -= dqdci; // dwdot[HONO]/d[NH2] + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1008] -= dqdT; // dwdot[HONO]/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 161: 2 HONO => H2O + NO + NO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = (sc[16] * sc[16]); + k_f = 3.49e-07 * exp(3.64 * logT - (6108.34581953717) * invT); + dlnkfdT = 3.64 * invT + (6108.34581953717) * invT2; + // rate of progress + q = k_f * phi_f; + dqdT = dlnkfdT * k_f * phi_f; + // update wdot + wdot[7] += q; // H2O + wdot[11] += q; // NO + wdot[13] += q; // NO2 + wdot[16] -= 2 * q; // HONO + // d()/d[HONO] + dqdci = +k_f * 2.000000 * sc[16]; + J[519] += dqdci; // dwdot[H2O]/d[HONO] + J[523] += dqdci; // dwdot[NO]/d[HONO] + J[525] += dqdci; // dwdot[NO2]/d[HONO] + J[528] += -2 * dqdci; // dwdot[HONO]/d[HONO] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1008] += -2 * dqdT; // dwdot[HONO]/dT + + // reaction 162: H2NO <=> HNOH + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[29]; + k_f = 1.27962488454253e+27 * + exp(-4.98971416937931 * logT - (22132.033206478) * invT); + dlnkfdT = -4.98971416937931 * invT + (22132.033206478) * invT2; + // reverse + phi_r = sc[21]; + Kc = exp(-g_RT[21] + g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[29]) + (h_RT[21])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[21] += q; // HNOH + wdot[29] -= q; // H2NO + // d()/d[HNOH] + dqdci = -k_r; + J[693] += dqdci; // dwdot[HNOH]/d[HNOH] + J[701] -= dqdci; // dwdot[H2NO]/d[HNOH] + // d()/d[H2NO] + dqdci = +k_f; + J[949] += dqdci; // dwdot[HNOH]/d[H2NO] + J[957] -= dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[1013] += dqdT; // dwdot[HNOH]/dT + J[1021] -= dqdT; // dwdot[H2NO]/dT + + // reaction 164: H + H2NO <=> H2 + HNO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[29]; + k_f = 480 * exp(1.5 * logT - (784.917355322202) * invT); + dlnkfdT = 1.5 * invT + (784.917355322202) * invT2; + // reverse + phi_r = sc[3] * sc[14]; + Kc = exp(-g_RT[3] + g_RT[4] - g_RT[14] + g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[29]) + (h_RT[3] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[14] += q; // HNO + wdot[29] -= q; // H2NO + // d()/d[H2] + dqdci = -k_r * sc[14]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[110] += dqdci; // dwdot[HNO]/d[H2] + J[125] -= dqdci; // dwdot[H2NO]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[29]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[142] += dqdci; // dwdot[HNO]/d[H] + J[157] -= dqdci; // dwdot[H2NO]/d[H] + // d()/d[HNO] + dqdci = -k_r * sc[3]; + J[451] += dqdci; // dwdot[H2]/d[HNO] + J[452] -= dqdci; // dwdot[H]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[477] -= dqdci; // dwdot[H2NO]/d[HNO] + // d()/d[H2NO] + dqdci = +k_f * sc[4]; + J[931] += dqdci; // dwdot[H2]/d[H2NO] + J[932] -= dqdci; // dwdot[H]/d[H2NO] + J[942] += dqdci; // dwdot[HNO]/d[H2NO] + J[957] -= dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1021] -= dqdT; // dwdot[H2NO]/dT + + // reaction 165: H + H2NO <=> NH2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[29]; + k_f = 40000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[8] * sc[28]; + Kc = exp(g_RT[4] - g_RT[8] - g_RT[28] + g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[29]) + (h_RT[8] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] -= q; // H + wdot[8] += q; // OH + wdot[28] += q; // NH2 + wdot[29] -= q; // H2NO + // d()/d[H] + dqdci = +k_f * sc[29]; + J[132] -= dqdci; // dwdot[H]/d[H] + J[136] += dqdci; // dwdot[OH]/d[H] + J[156] += dqdci; // dwdot[NH2]/d[H] + J[157] -= dqdci; // dwdot[H2NO]/d[H] + // d()/d[OH] + dqdci = -k_r * sc[28]; + J[260] -= dqdci; // dwdot[H]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[284] += dqdci; // dwdot[NH2]/d[OH] + J[285] -= dqdci; // dwdot[H2NO]/d[OH] + // d()/d[NH2] + dqdci = -k_r * sc[8]; + J[900] -= dqdci; // dwdot[H]/d[NH2] + J[904] += dqdci; // dwdot[OH]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + J[925] -= dqdci; // dwdot[H2NO]/d[NH2] + // d()/d[H2NO] + dqdci = +k_f * sc[4]; + J[932] -= dqdci; // dwdot[H]/d[H2NO] + J[936] += dqdci; // dwdot[OH]/d[H2NO] + J[956] += dqdci; // dwdot[NH2]/d[H2NO] + J[957] -= dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + J[1021] -= dqdT; // dwdot[H2NO]/dT + + // reaction 166: H2NO + O <=> HNO + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[29]; + k_f = 330 * exp(1.5 * logT - (244.965872913738) * invT); + dlnkfdT = 1.5 * invT + (244.965872913738) * invT2; + // reverse + phi_r = sc[8] * sc[14]; + Kc = exp(g_RT[6] - g_RT[8] - g_RT[14] + g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[29]) + (h_RT[8] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[14] += q; // HNO + wdot[29] -= q; // H2NO + // d()/d[O] + dqdci = +k_f * sc[29]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[206] += dqdci; // dwdot[HNO]/d[O] + J[221] -= dqdci; // dwdot[H2NO]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[14]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[270] += dqdci; // dwdot[HNO]/d[OH] + J[285] -= dqdci; // dwdot[H2NO]/d[OH] + // d()/d[HNO] + dqdci = -k_r * sc[8]; + J[454] -= dqdci; // dwdot[O]/d[HNO] + J[456] += dqdci; // dwdot[OH]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[477] -= dqdci; // dwdot[H2NO]/d[HNO] + // d()/d[H2NO] + dqdci = +k_f * sc[6]; + J[934] -= dqdci; // dwdot[O]/d[H2NO] + J[936] += dqdci; // dwdot[OH]/d[H2NO] + J[942] += dqdci; // dwdot[HNO]/d[H2NO] + J[957] -= dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1021] -= dqdT; // dwdot[H2NO]/dT + + // reaction 167: H2NO + OH <=> H2O + HNO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[29]; + k_f = 2.4 * exp(2 * logT - (599.934908972387) * invT); + dlnkfdT = 2 * invT + (599.934908972387) * invT2; + // reverse + phi_r = sc[7] * sc[14]; + Kc = exp(-g_RT[7] + g_RT[8] - g_RT[14] + g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[29]) + (h_RT[7] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[14] += q; // HNO + wdot[29] -= q; // H2NO + // d()/d[H2O] + dqdci = -k_r * sc[14]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[238] += dqdci; // dwdot[HNO]/d[H2O] + J[253] -= dqdci; // dwdot[H2NO]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[29]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[270] += dqdci; // dwdot[HNO]/d[OH] + J[285] -= dqdci; // dwdot[H2NO]/d[OH] + // d()/d[HNO] + dqdci = -k_r * sc[7]; + J[455] += dqdci; // dwdot[H2O]/d[HNO] + J[456] -= dqdci; // dwdot[OH]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[477] -= dqdci; // dwdot[H2NO]/d[HNO] + // d()/d[H2NO] + dqdci = +k_f * sc[8]; + J[935] += dqdci; // dwdot[H2O]/d[H2NO] + J[936] -= dqdci; // dwdot[OH]/d[H2NO] + J[942] += dqdci; // dwdot[HNO]/d[H2NO] + J[957] -= dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1021] -= dqdT; // dwdot[H2NO]/dT + + // reaction 168: H2NO + NO <=> 2 HNO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[11] * sc[29]; + k_f = 0.02 * exp(2 * logT - (6541.81665546136) * invT); + dlnkfdT = 2 * invT + (6541.81665546136) * invT2; + // reverse + phi_r = (sc[14] * sc[14]); + Kc = exp(g_RT[11] - 2.000000 * g_RT[14] + g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[11] + h_RT[29]) + (2.000000 * h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[11] -= q; // NO + wdot[14] += 2 * q; // HNO + wdot[29] -= q; // H2NO + // d()/d[NO] + dqdci = +k_f * sc[29]; + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[366] += 2 * dqdci; // dwdot[HNO]/d[NO] + J[381] -= dqdci; // dwdot[H2NO]/d[NO] + // d()/d[HNO] + dqdci = -k_r * 2.000000 * sc[14]; + J[459] -= dqdci; // dwdot[NO]/d[HNO] + J[462] += 2 * dqdci; // dwdot[HNO]/d[HNO] + J[477] -= dqdci; // dwdot[H2NO]/d[HNO] + // d()/d[H2NO] + dqdci = +k_f * sc[11]; + J[939] -= dqdci; // dwdot[NO]/d[H2NO] + J[942] += 2 * dqdci; // dwdot[HNO]/d[H2NO] + J[957] -= dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1006] += 2 * dqdT; // dwdot[HNO]/dT + J[1021] -= dqdT; // dwdot[H2NO]/dT + + // reaction 169: H2NO + NO2 <=> HNO + HONO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[13] * sc[29]; + k_f = 600000 * exp(-(1006.43333160944) * invT); + dlnkfdT = (1006.43333160944) * invT2; + // reverse + phi_r = sc[14] * sc[16]; + Kc = exp(g_RT[13] - g_RT[14] - g_RT[16] + g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[13] + h_RT[29]) + (h_RT[14] + h_RT[16])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[13] -= q; // NO2 + wdot[14] += q; // HNO + wdot[16] += q; // HONO + wdot[29] -= q; // H2NO + // d()/d[NO2] + dqdci = +k_f * sc[29]; + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[430] += dqdci; // dwdot[HNO]/d[NO2] + J[432] += dqdci; // dwdot[HONO]/d[NO2] + J[445] -= dqdci; // dwdot[H2NO]/d[NO2] + // d()/d[HNO] + dqdci = -k_r * sc[16]; + J[461] -= dqdci; // dwdot[NO2]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[464] += dqdci; // dwdot[HONO]/d[HNO] + J[477] -= dqdci; // dwdot[H2NO]/d[HNO] + // d()/d[HONO] + dqdci = -k_r * sc[14]; + J[525] -= dqdci; // dwdot[NO2]/d[HONO] + J[526] += dqdci; // dwdot[HNO]/d[HONO] + J[528] += dqdci; // dwdot[HONO]/d[HONO] + J[541] -= dqdci; // dwdot[H2NO]/d[HONO] + // d()/d[H2NO] + dqdci = +k_f * sc[13]; + J[941] -= dqdci; // dwdot[NO2]/d[H2NO] + J[942] += dqdci; // dwdot[HNO]/d[H2NO] + J[944] += dqdci; // dwdot[HONO]/d[H2NO] + J[957] -= dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1008] += dqdT; // dwdot[HONO]/dT + J[1021] -= dqdT; // dwdot[H2NO]/dT + + // reaction 170: H2NO + NH2 <=> HNO + NH3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[28] * sc[29]; + k_f = 1.8 * exp(1.94 * logT - (-291.865666166737) * invT); + dlnkfdT = 1.94 * invT + (-291.865666166737) * invT2; + // reverse + phi_r = sc[14] * sc[22]; + Kc = exp(-g_RT[14] - g_RT[22] + g_RT[28] + g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[28] + h_RT[29]) + (h_RT[14] + h_RT[22])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[14] += q; // HNO + wdot[22] += q; // NH3 + wdot[28] -= q; // NH2 + wdot[29] -= q; // H2NO + // d()/d[HNO] + dqdci = -k_r * sc[22]; + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[470] += dqdci; // dwdot[NH3]/d[HNO] + J[476] -= dqdci; // dwdot[NH2]/d[HNO] + J[477] -= dqdci; // dwdot[H2NO]/d[HNO] + // d()/d[NH3] + dqdci = -k_r * sc[14]; + J[718] += dqdci; // dwdot[HNO]/d[NH3] + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + J[733] -= dqdci; // dwdot[H2NO]/d[NH3] + // d()/d[NH2] + dqdci = +k_f * sc[29]; + J[910] += dqdci; // dwdot[HNO]/d[NH2] + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + J[925] -= dqdci; // dwdot[H2NO]/d[NH2] + // d()/d[H2NO] + dqdci = +k_f * sc[28]; + J[942] += dqdci; // dwdot[HNO]/d[H2NO] + J[950] += dqdci; // dwdot[NH3]/d[H2NO] + J[956] -= dqdci; // dwdot[NH2]/d[H2NO] + J[957] -= dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + J[1021] -= dqdT; // dwdot[H2NO]/dT + + // reaction 171: H2NO + O2 <=> HNO + HO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[5] * sc[29]; + k_f = 0.00023 * exp(2.994 * logT - (8303.07498577788) * invT); + dlnkfdT = 2.994 * invT + (8303.07498577788) * invT2; + // reverse + phi_r = sc[10] * sc[14]; + Kc = exp(g_RT[5] - g_RT[10] - g_RT[14] + g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[5] + h_RT[29]) + (h_RT[10] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] -= q; // O2 + wdot[10] += q; // HO2 + wdot[14] += q; // HNO + wdot[29] -= q; // H2NO + // d()/d[O2] + dqdci = +k_f * sc[29]; + J[165] -= dqdci; // dwdot[O2]/d[O2] + J[170] += dqdci; // dwdot[HO2]/d[O2] + J[174] += dqdci; // dwdot[HNO]/d[O2] + J[189] -= dqdci; // dwdot[H2NO]/d[O2] + // d()/d[HO2] + dqdci = -k_r * sc[14]; + J[325] -= dqdci; // dwdot[O2]/d[HO2] + J[330] += dqdci; // dwdot[HO2]/d[HO2] + J[334] += dqdci; // dwdot[HNO]/d[HO2] + J[349] -= dqdci; // dwdot[H2NO]/d[HO2] + // d()/d[HNO] + dqdci = -k_r * sc[10]; + J[453] -= dqdci; // dwdot[O2]/d[HNO] + J[458] += dqdci; // dwdot[HO2]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[477] -= dqdci; // dwdot[H2NO]/d[HNO] + // d()/d[H2NO] + dqdci = +k_f * sc[5]; + J[933] -= dqdci; // dwdot[O2]/d[H2NO] + J[938] += dqdci; // dwdot[HO2]/d[H2NO] + J[942] += dqdci; // dwdot[HNO]/d[H2NO] + J[957] -= dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1021] -= dqdT; // dwdot[H2NO]/dT + + // reaction 172: H2NO + HO2 <=> H2O2 + HNO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[29]; + k_f = 0.336 * exp(2 * logT - (-721.612698763968) * invT); + dlnkfdT = 2 * invT + (-721.612698763968) * invT2; + // reverse + phi_r = sc[9] * sc[14]; + Kc = exp(-g_RT[9] + g_RT[10] - g_RT[14] + g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[29]) + (h_RT[9] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[9] += q; // H2O2 + wdot[10] -= q; // HO2 + wdot[14] += q; // HNO + wdot[29] -= q; // H2NO + // d()/d[H2O2] + dqdci = -k_r * sc[14]; + J[297] += dqdci; // dwdot[H2O2]/d[H2O2] + J[298] -= dqdci; // dwdot[HO2]/d[H2O2] + J[302] += dqdci; // dwdot[HNO]/d[H2O2] + J[317] -= dqdci; // dwdot[H2NO]/d[H2O2] + // d()/d[HO2] + dqdci = +k_f * sc[29]; + J[329] += dqdci; // dwdot[H2O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[334] += dqdci; // dwdot[HNO]/d[HO2] + J[349] -= dqdci; // dwdot[H2NO]/d[HO2] + // d()/d[HNO] + dqdci = -k_r * sc[9]; + J[457] += dqdci; // dwdot[H2O2]/d[HNO] + J[458] -= dqdci; // dwdot[HO2]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[477] -= dqdci; // dwdot[H2NO]/d[HNO] + // d()/d[H2NO] + dqdci = +k_f * sc[10]; + J[937] += dqdci; // dwdot[H2O2]/d[H2NO] + J[938] -= dqdci; // dwdot[HO2]/d[H2NO] + J[942] += dqdci; // dwdot[HNO]/d[H2NO] + J[957] -= dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[1001] += dqdT; // dwdot[H2O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1021] -= dqdT; // dwdot[H2NO]/dT + + // reaction 173: H + NO3 <=> NO2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[25]; + k_f = 66100000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[8] * sc[13]; + Kc = exp(g_RT[4] - g_RT[8] - g_RT[13] + g_RT[25]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[25]) + (h_RT[8] + h_RT[13])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] -= q; // H + wdot[8] += q; // OH + wdot[13] += q; // NO2 + wdot[25] -= q; // NO3 + // d()/d[H] + dqdci = +k_f * sc[25]; + J[132] -= dqdci; // dwdot[H]/d[H] + J[136] += dqdci; // dwdot[OH]/d[H] + J[141] += dqdci; // dwdot[NO2]/d[H] + J[153] -= dqdci; // dwdot[NO3]/d[H] + // d()/d[OH] + dqdci = -k_r * sc[13]; + J[260] -= dqdci; // dwdot[H]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[269] += dqdci; // dwdot[NO2]/d[OH] + J[281] -= dqdci; // dwdot[NO3]/d[OH] + // d()/d[NO2] + dqdci = -k_r * sc[8]; + J[420] -= dqdci; // dwdot[H]/d[NO2] + J[424] += dqdci; // dwdot[OH]/d[NO2] + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[441] -= dqdci; // dwdot[NO3]/d[NO2] + // d()/d[NO3] + dqdci = +k_f * sc[4]; + J[804] -= dqdci; // dwdot[H]/d[NO3] + J[808] += dqdci; // dwdot[OH]/d[NO3] + J[813] += dqdci; // dwdot[NO2]/d[NO3] + J[825] -= dqdci; // dwdot[NO3]/d[NO3] + // d()/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1017] -= dqdT; // dwdot[NO3]/dT + + // reaction 174: NO3 + O <=> NO2 + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[25]; + k_f = 10240000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[5] * sc[13]; + Kc = exp(-g_RT[5] + g_RT[6] - g_RT[13] + g_RT[25]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[25]) + (h_RT[5] + h_RT[13])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[6] -= q; // O + wdot[13] += q; // NO2 + wdot[25] -= q; // NO3 + // d()/d[O2] + dqdci = -k_r * sc[13]; + J[165] += dqdci; // dwdot[O2]/d[O2] + J[166] -= dqdci; // dwdot[O]/d[O2] + J[173] += dqdci; // dwdot[NO2]/d[O2] + J[185] -= dqdci; // dwdot[NO3]/d[O2] + // d()/d[O] + dqdci = +k_f * sc[25]; + J[197] += dqdci; // dwdot[O2]/d[O] + J[198] -= dqdci; // dwdot[O]/d[O] + J[205] += dqdci; // dwdot[NO2]/d[O] + J[217] -= dqdci; // dwdot[NO3]/d[O] + // d()/d[NO2] + dqdci = -k_r * sc[5]; + J[421] += dqdci; // dwdot[O2]/d[NO2] + J[422] -= dqdci; // dwdot[O]/d[NO2] + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[441] -= dqdci; // dwdot[NO3]/d[NO2] + // d()/d[NO3] + dqdci = +k_f * sc[6]; + J[805] += dqdci; // dwdot[O2]/d[NO3] + J[806] -= dqdci; // dwdot[O]/d[NO3] + J[813] += dqdci; // dwdot[NO2]/d[NO3] + J[825] -= dqdci; // dwdot[NO3]/d[NO3] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1017] -= dqdT; // dwdot[NO3]/dT + + // reaction 175: NO3 + OH <=> HO2 + NO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[25]; + k_f = 14000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[10] * sc[13]; + Kc = exp(g_RT[8] - g_RT[10] - g_RT[13] + g_RT[25]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[25]) + (h_RT[10] + h_RT[13])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[8] -= q; // OH + wdot[10] += q; // HO2 + wdot[13] += q; // NO2 + wdot[25] -= q; // NO3 + // d()/d[OH] + dqdci = +k_f * sc[25]; + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[266] += dqdci; // dwdot[HO2]/d[OH] + J[269] += dqdci; // dwdot[NO2]/d[OH] + J[281] -= dqdci; // dwdot[NO3]/d[OH] + // d()/d[HO2] + dqdci = -k_r * sc[13]; + J[328] -= dqdci; // dwdot[OH]/d[HO2] + J[330] += dqdci; // dwdot[HO2]/d[HO2] + J[333] += dqdci; // dwdot[NO2]/d[HO2] + J[345] -= dqdci; // dwdot[NO3]/d[HO2] + // d()/d[NO2] + dqdci = -k_r * sc[10]; + J[424] -= dqdci; // dwdot[OH]/d[NO2] + J[426] += dqdci; // dwdot[HO2]/d[NO2] + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[441] -= dqdci; // dwdot[NO3]/d[NO2] + // d()/d[NO3] + dqdci = +k_f * sc[8]; + J[808] -= dqdci; // dwdot[OH]/d[NO3] + J[810] += dqdci; // dwdot[HO2]/d[NO3] + J[813] += dqdci; // dwdot[NO2]/d[NO3] + J[825] -= dqdci; // dwdot[NO3]/d[NO3] + // d()/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1017] -= dqdT; // dwdot[NO3]/dT + + // reaction 176: HO2 + NO3 => NO2 + O2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[25]; + k_f = 1510000; + dlnkfdT = 0.0; + // rate of progress + q = k_f * phi_f; + dqdT = dlnkfdT * k_f * phi_f; + // update wdot + wdot[5] += q; // O2 + wdot[8] += q; // OH + wdot[10] -= q; // HO2 + wdot[13] += q; // NO2 + wdot[25] -= q; // NO3 + // d()/d[HO2] + dqdci = +k_f * sc[25]; + J[325] += dqdci; // dwdot[O2]/d[HO2] + J[328] += dqdci; // dwdot[OH]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[333] += dqdci; // dwdot[NO2]/d[HO2] + J[345] -= dqdci; // dwdot[NO3]/d[HO2] + // d()/d[NO3] + dqdci = +k_f * sc[10]; + J[805] += dqdci; // dwdot[O2]/d[NO3] + J[808] += dqdci; // dwdot[OH]/d[NO3] + J[810] -= dqdci; // dwdot[HO2]/d[NO3] + J[813] += dqdci; // dwdot[NO2]/d[NO3] + J[825] -= dqdci; // dwdot[NO3]/d[NO3] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1017] -= dqdT; // dwdot[NO3]/dT + + // reaction 178: NO3 <=> NO + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[25]; + k_f = 2500000 * exp(-(6098.9859895532) * invT); + dlnkfdT = (6098.9859895532) * invT2; + // reverse + phi_r = sc[5] * sc[11]; + Kc = refC * exp(-g_RT[5] - g_RT[11] + g_RT[25]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[25]) + (h_RT[5] + h_RT[11]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[11] += q; // NO + wdot[25] -= q; // NO3 + // d()/d[O2] + dqdci = -k_r * sc[11]; + J[165] += dqdci; // dwdot[O2]/d[O2] + J[171] += dqdci; // dwdot[NO]/d[O2] + J[185] -= dqdci; // dwdot[NO3]/d[O2] + // d()/d[NO] + dqdci = -k_r * sc[5]; + J[357] += dqdci; // dwdot[O2]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[377] -= dqdci; // dwdot[NO3]/d[NO] + // d()/d[NO3] + dqdci = +k_f; + J[805] += dqdci; // dwdot[O2]/d[NO3] + J[811] += dqdci; // dwdot[NO]/d[NO3] + J[825] -= dqdci; // dwdot[NO3]/d[NO3] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1017] -= dqdT; // dwdot[NO3]/dT + + // reaction 179: 2 NO3 => 2 NO2 + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = (sc[25] * sc[25]); + k_f = 512000 * exp(-(2450.66516246898) * invT); + dlnkfdT = (2450.66516246898) * invT2; + // rate of progress + q = k_f * phi_f; + dqdT = dlnkfdT * k_f * phi_f; + // update wdot + wdot[5] += q; // O2 + wdot[13] += 2 * q; // NO2 + wdot[25] -= 2 * q; // NO3 + // d()/d[NO3] + dqdci = +k_f * 2.000000 * sc[25]; + J[805] += dqdci; // dwdot[O2]/d[NO3] + J[813] += 2 * dqdci; // dwdot[NO2]/d[NO3] + J[825] += -2 * dqdci; // dwdot[NO3]/d[NO3] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[1005] += 2 * dqdT; // dwdot[NO2]/dT + J[1017] += -2 * dqdT; // dwdot[NO3]/dT + + // reaction 180: H + NO2 <=> NO + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[13]; + k_f = 88500000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[8] * sc[11]; + Kc = exp(g_RT[4] - g_RT[8] - g_RT[11] + g_RT[13]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[13]) + (h_RT[8] + h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] -= q; // H + wdot[8] += q; // OH + wdot[11] += q; // NO + wdot[13] -= q; // NO2 + // d()/d[H] + dqdci = +k_f * sc[13]; + J[132] -= dqdci; // dwdot[H]/d[H] + J[136] += dqdci; // dwdot[OH]/d[H] + J[139] += dqdci; // dwdot[NO]/d[H] + J[141] -= dqdci; // dwdot[NO2]/d[H] + // d()/d[OH] + dqdci = -k_r * sc[11]; + J[260] -= dqdci; // dwdot[H]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[267] += dqdci; // dwdot[NO]/d[OH] + J[269] -= dqdci; // dwdot[NO2]/d[OH] + // d()/d[NO] + dqdci = -k_r * sc[8]; + J[356] -= dqdci; // dwdot[H]/d[NO] + J[360] += dqdci; // dwdot[OH]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[365] -= dqdci; // dwdot[NO2]/d[NO] + // d()/d[NO2] + dqdci = +k_f * sc[4]; + J[420] -= dqdci; // dwdot[H]/d[NO2] + J[424] += dqdci; // dwdot[OH]/d[NO2] + J[427] += dqdci; // dwdot[NO]/d[NO2] + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + // d()/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + + // reaction 181: NO2 + O <=> NO + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[13]; + k_f = 3920000 * exp(-(-119.765566461523) * invT); + dlnkfdT = (-119.765566461523) * invT2; + // reverse + phi_r = sc[5] * sc[11]; + Kc = exp(-g_RT[5] + g_RT[6] - g_RT[11] + g_RT[13]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[13]) + (h_RT[5] + h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[6] -= q; // O + wdot[11] += q; // NO + wdot[13] -= q; // NO2 + // d()/d[O2] + dqdci = -k_r * sc[11]; + J[165] += dqdci; // dwdot[O2]/d[O2] + J[166] -= dqdci; // dwdot[O]/d[O2] + J[171] += dqdci; // dwdot[NO]/d[O2] + J[173] -= dqdci; // dwdot[NO2]/d[O2] + // d()/d[O] + dqdci = +k_f * sc[13]; + J[197] += dqdci; // dwdot[O2]/d[O] + J[198] -= dqdci; // dwdot[O]/d[O] + J[203] += dqdci; // dwdot[NO]/d[O] + J[205] -= dqdci; // dwdot[NO2]/d[O] + // d()/d[NO] + dqdci = -k_r * sc[5]; + J[357] += dqdci; // dwdot[O2]/d[NO] + J[358] -= dqdci; // dwdot[O]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[365] -= dqdci; // dwdot[NO2]/d[NO] + // d()/d[NO2] + dqdci = +k_f * sc[6]; + J[421] += dqdci; // dwdot[O2]/d[NO2] + J[422] -= dqdci; // dwdot[O]/d[NO2] + J[427] += dqdci; // dwdot[NO]/d[NO2] + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + + // reaction 183: HO2 + NO2 <=> HONO + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[13]; + k_f = 1.9e-06 * exp(3.32 * logT - (1531.79153070957) * invT); + dlnkfdT = 3.32 * invT + (1531.79153070957) * invT2; + // reverse + phi_r = sc[5] * sc[16]; + Kc = exp(-g_RT[5] + g_RT[10] + g_RT[13] - g_RT[16]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[13]) + (h_RT[5] + h_RT[16])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[10] -= q; // HO2 + wdot[13] -= q; // NO2 + wdot[16] += q; // HONO + // d()/d[O2] + dqdci = -k_r * sc[16]; + J[165] += dqdci; // dwdot[O2]/d[O2] + J[170] -= dqdci; // dwdot[HO2]/d[O2] + J[173] -= dqdci; // dwdot[NO2]/d[O2] + J[176] += dqdci; // dwdot[HONO]/d[O2] + // d()/d[HO2] + dqdci = +k_f * sc[13]; + J[325] += dqdci; // dwdot[O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[333] -= dqdci; // dwdot[NO2]/d[HO2] + J[336] += dqdci; // dwdot[HONO]/d[HO2] + // d()/d[NO2] + dqdci = +k_f * sc[10]; + J[421] += dqdci; // dwdot[O2]/d[NO2] + J[426] -= dqdci; // dwdot[HO2]/d[NO2] + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[432] += dqdci; // dwdot[HONO]/d[NO2] + // d()/d[HONO] + dqdci = -k_r * sc[5]; + J[517] += dqdci; // dwdot[O2]/d[HONO] + J[522] -= dqdci; // dwdot[HO2]/d[HONO] + J[525] -= dqdci; // dwdot[NO2]/d[HONO] + J[528] += dqdci; // dwdot[HONO]/d[HONO] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1008] += dqdT; // dwdot[HONO]/dT + + // reaction 184: HO2 + NO2 <=> HNO2 + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[13]; + k_f = 1.9e-05 * exp(3.26 * logT - (2507.52864570492) * invT); + dlnkfdT = 3.26 * invT + (2507.52864570492) * invT2; + // reverse + phi_r = sc[5] * sc[15]; + Kc = exp(-g_RT[5] + g_RT[10] + g_RT[13] - g_RT[15]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[13]) + (h_RT[5] + h_RT[15])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[10] -= q; // HO2 + wdot[13] -= q; // NO2 + wdot[15] += q; // HNO2 + // d()/d[O2] + dqdci = -k_r * sc[15]; + J[165] += dqdci; // dwdot[O2]/d[O2] + J[170] -= dqdci; // dwdot[HO2]/d[O2] + J[173] -= dqdci; // dwdot[NO2]/d[O2] + J[175] += dqdci; // dwdot[HNO2]/d[O2] + // d()/d[HO2] + dqdci = +k_f * sc[13]; + J[325] += dqdci; // dwdot[O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[333] -= dqdci; // dwdot[NO2]/d[HO2] + J[335] += dqdci; // dwdot[HNO2]/d[HO2] + // d()/d[NO2] + dqdci = +k_f * sc[10]; + J[421] += dqdci; // dwdot[O2]/d[NO2] + J[426] -= dqdci; // dwdot[HO2]/d[NO2] + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[431] += dqdci; // dwdot[HNO2]/d[NO2] + // d()/d[HNO2] + dqdci = -k_r * sc[5]; + J[485] += dqdci; // dwdot[O2]/d[HNO2] + J[490] -= dqdci; // dwdot[HO2]/d[HNO2] + J[493] -= dqdci; // dwdot[NO2]/d[HNO2] + J[495] += dqdci; // dwdot[HNO2]/d[HNO2] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1007] += dqdT; // dwdot[HNO2]/dT + + // reaction 185: 2 NO2 => 2 NO + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = (sc[13] * sc[13]); + k_f = 1630000 * exp(-(13098.7298108969) * invT); + dlnkfdT = (13098.7298108969) * invT2; + // rate of progress + q = k_f * phi_f; + dqdT = dlnkfdT * k_f * phi_f; + // update wdot + wdot[5] += q; // O2 + wdot[11] += 2 * q; // NO + wdot[13] -= 2 * q; // NO2 + // d()/d[NO2] + dqdci = +k_f * 2.000000 * sc[13]; + J[421] += dqdci; // dwdot[O2]/d[NO2] + J[427] += 2 * dqdci; // dwdot[NO]/d[NO2] + J[429] += -2 * dqdci; // dwdot[NO2]/d[NO2] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[1003] += 2 * dqdT; // dwdot[NO]/dT + J[1005] += -2 * dqdT; // dwdot[NO2]/dT + + // reaction 186: 2 NO2 <=> NO + NO3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = (sc[13] * sc[13]); + k_f = 10000000 * exp(-(12982.9899777618) * invT); + dlnkfdT = (12982.9899777618) * invT2; + // reverse + phi_r = sc[11] * sc[25]; + Kc = exp(-g_RT[11] + 2.000000 * g_RT[13] - g_RT[25]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(2.000000 * h_RT[13]) + (h_RT[11] + h_RT[25])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[11] += q; // NO + wdot[13] -= 2 * q; // NO2 + wdot[25] += q; // NO3 + // d()/d[NO] + dqdci = -k_r * sc[25]; + J[363] += dqdci; // dwdot[NO]/d[NO] + J[365] += -2 * dqdci; // dwdot[NO2]/d[NO] + J[377] += dqdci; // dwdot[NO3]/d[NO] + // d()/d[NO2] + dqdci = +k_f * 2.000000 * sc[13]; + J[427] += dqdci; // dwdot[NO]/d[NO2] + J[429] += -2 * dqdci; // dwdot[NO2]/d[NO2] + J[441] += dqdci; // dwdot[NO3]/d[NO2] + // d()/d[NO3] + dqdci = -k_r * sc[11]; + J[811] += dqdci; // dwdot[NO]/d[NO3] + J[813] += -2 * dqdci; // dwdot[NO2]/d[NO3] + J[825] += dqdci; // dwdot[NO3]/d[NO3] + // d()/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1005] += -2 * dqdT; // dwdot[NO2]/dT + J[1017] += dqdT; // dwdot[NO3]/dT + + // reaction 188: H + N2O <=> N2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[12]; + k_f = 25300 * exp(-(2289.63582941147) * invT); + dlnkfdT = (2289.63582941147) * invT2; + // reverse + phi_r = sc[1] * sc[8]; + Kc = exp(-g_RT[1] + g_RT[4] - g_RT[8] + g_RT[12]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[12]) + (h_RT[1] + h_RT[8])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[4] -= q; // H + wdot[8] += q; // OH + wdot[12] -= q; // N2O + // d()/d[N2] + dqdci = -k_r * sc[8]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[36] -= dqdci; // dwdot[H]/d[N2] + J[40] += dqdci; // dwdot[OH]/d[N2] + J[44] -= dqdci; // dwdot[N2O]/d[N2] + // d()/d[H] + dqdci = +k_f * sc[12]; + J[129] += dqdci; // dwdot[N2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[136] += dqdci; // dwdot[OH]/d[H] + J[140] -= dqdci; // dwdot[N2O]/d[H] + // d()/d[OH] + dqdci = -k_r * sc[1]; + J[257] += dqdci; // dwdot[N2]/d[OH] + J[260] -= dqdci; // dwdot[H]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[268] -= dqdci; // dwdot[N2O]/d[OH] + // d()/d[N2O] + dqdci = +k_f * sc[4]; + J[385] += dqdci; // dwdot[N2]/d[N2O] + J[388] -= dqdci; // dwdot[H]/d[N2O] + J[392] += dqdci; // dwdot[OH]/d[N2O] + J[396] -= dqdci; // dwdot[N2O]/d[N2O] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1004] -= dqdT; // dwdot[N2O]/dT + + // reaction 189: H + N2O <=> N2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[12]; + k_f = 500000000 * exp(-(9108.22165106543) * invT); + dlnkfdT = (9108.22165106543) * invT2; + // reverse + phi_r = sc[1] * sc[8]; + Kc = exp(-g_RT[1] + g_RT[4] - g_RT[8] + g_RT[12]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[12]) + (h_RT[1] + h_RT[8])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[4] -= q; // H + wdot[8] += q; // OH + wdot[12] -= q; // N2O + // d()/d[N2] + dqdci = -k_r * sc[8]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[36] -= dqdci; // dwdot[H]/d[N2] + J[40] += dqdci; // dwdot[OH]/d[N2] + J[44] -= dqdci; // dwdot[N2O]/d[N2] + // d()/d[H] + dqdci = +k_f * sc[12]; + J[129] += dqdci; // dwdot[N2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[136] += dqdci; // dwdot[OH]/d[H] + J[140] -= dqdci; // dwdot[N2O]/d[H] + // d()/d[OH] + dqdci = -k_r * sc[1]; + J[257] += dqdci; // dwdot[N2]/d[OH] + J[260] -= dqdci; // dwdot[H]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[268] -= dqdci; // dwdot[N2O]/d[OH] + // d()/d[N2O] + dqdci = +k_f * sc[4]; + J[385] += dqdci; // dwdot[N2]/d[N2O] + J[388] -= dqdci; // dwdot[H]/d[N2O] + J[392] += dqdci; // dwdot[OH]/d[N2O] + J[396] -= dqdci; // dwdot[N2O]/d[N2O] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1004] -= dqdT; // dwdot[N2O]/dT + + // reaction 190: N2O + O <=> 2 NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[12]; + k_f = 66200000 * exp(-(13400.6598103797) * invT); + dlnkfdT = (13400.6598103797) * invT2; + // reverse + phi_r = (sc[11] * sc[11]); + Kc = exp(g_RT[6] - 2.000000 * g_RT[11] + g_RT[12]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[12]) + (2.000000 * h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[11] += 2 * q; // NO + wdot[12] -= q; // N2O + // d()/d[O] + dqdci = +k_f * sc[12]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[203] += 2 * dqdci; // dwdot[NO]/d[O] + J[204] -= dqdci; // dwdot[N2O]/d[O] + // d()/d[NO] + dqdci = -k_r * 2.000000 * sc[11]; + J[358] -= dqdci; // dwdot[O]/d[NO] + J[363] += 2 * dqdci; // dwdot[NO]/d[NO] + J[364] -= dqdci; // dwdot[N2O]/d[NO] + // d()/d[N2O] + dqdci = +k_f * sc[6]; + J[390] -= dqdci; // dwdot[O]/d[N2O] + J[395] += 2 * dqdci; // dwdot[NO]/d[N2O] + J[396] -= dqdci; // dwdot[N2O]/d[N2O] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1003] += 2 * dqdT; // dwdot[NO]/dT + J[1004] -= dqdT; // dwdot[N2O]/dT + + // reaction 191: N2O + O <=> N2 + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[12]; + k_f = 102000000 * exp(-(14100.1309758482) * invT); + dlnkfdT = (14100.1309758482) * invT2; + // reverse + phi_r = sc[1] * sc[5]; + Kc = exp(-g_RT[1] - g_RT[5] + g_RT[6] + g_RT[12]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[12]) + (h_RT[1] + h_RT[5])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[5] += q; // O2 + wdot[6] -= q; // O + wdot[12] -= q; // N2O + // d()/d[N2] + dqdci = -k_r * sc[5]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[37] += dqdci; // dwdot[O2]/d[N2] + J[38] -= dqdci; // dwdot[O]/d[N2] + J[44] -= dqdci; // dwdot[N2O]/d[N2] + // d()/d[O2] + dqdci = -k_r * sc[1]; + J[161] += dqdci; // dwdot[N2]/d[O2] + J[165] += dqdci; // dwdot[O2]/d[O2] + J[166] -= dqdci; // dwdot[O]/d[O2] + J[172] -= dqdci; // dwdot[N2O]/d[O2] + // d()/d[O] + dqdci = +k_f * sc[12]; + J[193] += dqdci; // dwdot[N2]/d[O] + J[197] += dqdci; // dwdot[O2]/d[O] + J[198] -= dqdci; // dwdot[O]/d[O] + J[204] -= dqdci; // dwdot[N2O]/d[O] + // d()/d[N2O] + dqdci = +k_f * sc[6]; + J[385] += dqdci; // dwdot[N2]/d[N2O] + J[389] += dqdci; // dwdot[O2]/d[N2O] + J[390] -= dqdci; // dwdot[O]/d[N2O] + J[396] -= dqdci; // dwdot[N2O]/d[N2O] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[997] += dqdT; // dwdot[O2]/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1004] -= dqdT; // dwdot[N2O]/dT + + // reaction 192: N2O + OH <=> HO2 + N2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[12]; + k_f = 1e-08 * exp(4.72 * logT - (18397.6013018206) * invT); + dlnkfdT = 4.72 * invT + (18397.6013018206) * invT2; + // reverse + phi_r = sc[1] * sc[10]; + Kc = exp(-g_RT[1] + g_RT[8] - g_RT[10] + g_RT[12]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[12]) + (h_RT[1] + h_RT[10])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[8] -= q; // OH + wdot[10] += q; // HO2 + wdot[12] -= q; // N2O + // d()/d[N2] + dqdci = -k_r * sc[10]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[40] -= dqdci; // dwdot[OH]/d[N2] + J[42] += dqdci; // dwdot[HO2]/d[N2] + J[44] -= dqdci; // dwdot[N2O]/d[N2] + // d()/d[OH] + dqdci = +k_f * sc[12]; + J[257] += dqdci; // dwdot[N2]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[266] += dqdci; // dwdot[HO2]/d[OH] + J[268] -= dqdci; // dwdot[N2O]/d[OH] + // d()/d[HO2] + dqdci = -k_r * sc[1]; + J[321] += dqdci; // dwdot[N2]/d[HO2] + J[328] -= dqdci; // dwdot[OH]/d[HO2] + J[330] += dqdci; // dwdot[HO2]/d[HO2] + J[332] -= dqdci; // dwdot[N2O]/d[HO2] + // d()/d[N2O] + dqdci = +k_f * sc[8]; + J[385] += dqdci; // dwdot[N2]/d[N2O] + J[392] -= dqdci; // dwdot[OH]/d[N2O] + J[394] += dqdci; // dwdot[HO2]/d[N2O] + J[396] -= dqdci; // dwdot[N2O]/d[N2O] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + J[1004] -= dqdT; // dwdot[N2O]/dT + + // reaction 193: N2O + NO <=> N2 + NO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[11] * sc[12]; + k_f = 0.525 * exp(2.23 * logT - (23298.9316267585) * invT); + dlnkfdT = 2.23 * invT + (23298.9316267585) * invT2; + // reverse + phi_r = sc[1] * sc[13]; + Kc = exp(-g_RT[1] + g_RT[11] + g_RT[12] - g_RT[13]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[11] + h_RT[12]) + (h_RT[1] + h_RT[13])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[11] -= q; // NO + wdot[12] -= q; // N2O + wdot[13] += q; // NO2 + // d()/d[N2] + dqdci = -k_r * sc[13]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[43] -= dqdci; // dwdot[NO]/d[N2] + J[44] -= dqdci; // dwdot[N2O]/d[N2] + J[45] += dqdci; // dwdot[NO2]/d[N2] + // d()/d[NO] + dqdci = +k_f * sc[12]; + J[353] += dqdci; // dwdot[N2]/d[NO] + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[364] -= dqdci; // dwdot[N2O]/d[NO] + J[365] += dqdci; // dwdot[NO2]/d[NO] + // d()/d[N2O] + dqdci = +k_f * sc[11]; + J[385] += dqdci; // dwdot[N2]/d[N2O] + J[395] -= dqdci; // dwdot[NO]/d[N2O] + J[396] -= dqdci; // dwdot[N2O]/d[N2O] + J[397] += dqdci; // dwdot[NO2]/d[N2O] + // d()/d[NO2] + dqdci = -k_r * sc[1]; + J[417] += dqdci; // dwdot[N2]/d[NO2] + J[427] -= dqdci; // dwdot[NO]/d[NO2] + J[428] -= dqdci; // dwdot[N2O]/d[NO2] + J[429] += dqdci; // dwdot[NO2]/d[NO2] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1004] -= dqdT; // dwdot[N2O]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + + // reaction 194: HNO2 + O <=> NO2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[15]; + k_f = 170 * exp(1.5 * logT - (1190.30870129448) * invT); + dlnkfdT = 1.5 * invT + (1190.30870129448) * invT2; + // reverse + phi_r = sc[8] * sc[13]; + Kc = exp(g_RT[6] - g_RT[8] - g_RT[13] + g_RT[15]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[15]) + (h_RT[8] + h_RT[13])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[13] += q; // NO2 + wdot[15] -= q; // HNO2 + // d()/d[O] + dqdci = +k_f * sc[15]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[205] += dqdci; // dwdot[NO2]/d[O] + J[207] -= dqdci; // dwdot[HNO2]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[13]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[269] += dqdci; // dwdot[NO2]/d[OH] + J[271] -= dqdci; // dwdot[HNO2]/d[OH] + // d()/d[NO2] + dqdci = -k_r * sc[8]; + J[422] -= dqdci; // dwdot[O]/d[NO2] + J[424] += dqdci; // dwdot[OH]/d[NO2] + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[431] -= dqdci; // dwdot[HNO2]/d[NO2] + // d()/d[HNO2] + dqdci = +k_f * sc[6]; + J[486] -= dqdci; // dwdot[O]/d[HNO2] + J[488] += dqdci; // dwdot[OH]/d[HNO2] + J[493] += dqdci; // dwdot[NO2]/d[HNO2] + J[495] -= dqdci; // dwdot[HNO2]/d[HNO2] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1007] -= dqdT; // dwdot[HNO2]/dT + + // reaction 195: HNO2 + OH <=> H2O + NO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[15]; + k_f = 1.2 * exp(2 * logT - (-399.956605981591) * invT); + dlnkfdT = 2 * invT + (-399.956605981591) * invT2; + // reverse + phi_r = sc[7] * sc[13]; + Kc = exp(-g_RT[7] + g_RT[8] - g_RT[13] + g_RT[15]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[15]) + (h_RT[7] + h_RT[13])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[13] += q; // NO2 + wdot[15] -= q; // HNO2 + // d()/d[H2O] + dqdci = -k_r * sc[13]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[237] += dqdci; // dwdot[NO2]/d[H2O] + J[239] -= dqdci; // dwdot[HNO2]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[15]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[269] += dqdci; // dwdot[NO2]/d[OH] + J[271] -= dqdci; // dwdot[HNO2]/d[OH] + // d()/d[NO2] + dqdci = -k_r * sc[7]; + J[423] += dqdci; // dwdot[H2O]/d[NO2] + J[424] -= dqdci; // dwdot[OH]/d[NO2] + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[431] -= dqdci; // dwdot[HNO2]/d[NO2] + // d()/d[HNO2] + dqdci = +k_f * sc[8]; + J[487] += dqdci; // dwdot[H2O]/d[HNO2] + J[488] -= dqdci; // dwdot[OH]/d[HNO2] + J[493] += dqdci; // dwdot[NO2]/d[HNO2] + J[495] -= dqdci; // dwdot[HNO2]/d[HNO2] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1007] -= dqdT; // dwdot[HNO2]/dT + + // reaction 196: HNO2 <=> HONO + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[15]; + k_f = 1.64828721239033e+30 * + exp(-6.47811251253514 * logT - (22326.026173795) * invT); + dlnkfdT = -6.47811251253514 * invT + (22326.026173795) * invT2; + // reverse + phi_r = sc[16]; + Kc = exp(g_RT[15] - g_RT[16]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[15]) + (h_RT[16])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[15] -= q; // HNO2 + wdot[16] += q; // HONO + // d()/d[HNO2] + dqdci = +k_f; + J[495] -= dqdci; // dwdot[HNO2]/d[HNO2] + J[496] += dqdci; // dwdot[HONO]/d[HNO2] + // d()/d[HONO] + dqdci = -k_r; + J[527] -= dqdci; // dwdot[HNO2]/d[HONO] + J[528] += dqdci; // dwdot[HONO]/d[HONO] + // d()/dT + J[1007] -= dqdT; // dwdot[HNO2]/dT + J[1008] += dqdT; // dwdot[HONO]/dT + + // reaction 197: HNO2 + NH2 <=> NH3 + NO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[15] * sc[28]; + k_f = 28000 * exp(-(-2898.52799503519) * invT); + dlnkfdT = (-2898.52799503519) * invT2; + // reverse + phi_r = sc[13] * sc[22]; + Kc = exp(-g_RT[13] + g_RT[15] - g_RT[22] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[15] + h_RT[28]) + (h_RT[13] + h_RT[22])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[13] += q; // NO2 + wdot[15] -= q; // HNO2 + wdot[22] += q; // NH3 + wdot[28] -= q; // NH2 + // d()/d[NO2] + dqdci = -k_r * sc[22]; + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[431] -= dqdci; // dwdot[HNO2]/d[NO2] + J[438] += dqdci; // dwdot[NH3]/d[NO2] + J[444] -= dqdci; // dwdot[NH2]/d[NO2] + // d()/d[HNO2] + dqdci = +k_f * sc[28]; + J[493] += dqdci; // dwdot[NO2]/d[HNO2] + J[495] -= dqdci; // dwdot[HNO2]/d[HNO2] + J[502] += dqdci; // dwdot[NH3]/d[HNO2] + J[508] -= dqdci; // dwdot[NH2]/d[HNO2] + // d()/d[NH3] + dqdci = -k_r * sc[13]; + J[717] += dqdci; // dwdot[NO2]/d[NH3] + J[719] -= dqdci; // dwdot[HNO2]/d[NH3] + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NH2] + dqdci = +k_f * sc[15]; + J[909] += dqdci; // dwdot[NO2]/d[NH2] + J[911] -= dqdci; // dwdot[HNO2]/d[NH2] + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1007] -= dqdT; // dwdot[HNO2]/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 198: H + HNO2 <=> H2O + NO + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[4] * sc[15]; + k_f = 3380.11409397342 * exp(1.07 * logT - (2800.41224478498) * invT); + dlnkfdT = 1.07 * invT + (2800.41224478498) * invT2; + // reverse + phi_r = sc[7] * sc[11]; + Kc = exp(g_RT[4] - g_RT[7] - g_RT[11] + g_RT[15]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[15]) + (h_RT[7] + h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] -= q; // H + wdot[7] += q; // H2O + wdot[11] += q; // NO + wdot[15] -= q; // HNO2 + // d()/d[H] + dqdci = +k_f * sc[15]; + J[132] -= dqdci; // dwdot[H]/d[H] + J[135] += dqdci; // dwdot[H2O]/d[H] + J[139] += dqdci; // dwdot[NO]/d[H] + J[143] -= dqdci; // dwdot[HNO2]/d[H] + // d()/d[H2O] + dqdci = -k_r * sc[11]; + J[228] -= dqdci; // dwdot[H]/d[H2O] + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[235] += dqdci; // dwdot[NO]/d[H2O] + J[239] -= dqdci; // dwdot[HNO2]/d[H2O] + // d()/d[NO] + dqdci = -k_r * sc[7]; + J[356] -= dqdci; // dwdot[H]/d[NO] + J[359] += dqdci; // dwdot[H2O]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[367] -= dqdci; // dwdot[HNO2]/d[NO] + // d()/d[HNO2] + dqdci = +k_f * sc[4]; + J[484] -= dqdci; // dwdot[H]/d[HNO2] + J[487] += dqdci; // dwdot[H2O]/d[HNO2] + J[491] += dqdci; // dwdot[NO]/d[HNO2] + J[495] -= dqdci; // dwdot[HNO2]/d[HNO2] + // d()/dT + J[996] -= dqdT; // dwdot[H]/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1007] -= dqdT; // dwdot[HNO2]/dT + + // reaction 199: H + HNO2 <=> HNO + OH + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[4] * sc[15]; + k_f = 36.4965581754801 * exp(1.78 * logT - (2802.89957915971) * invT); + dlnkfdT = 1.78 * invT + (2802.89957915971) * invT2; + // reverse + phi_r = sc[8] * sc[14]; + Kc = exp(g_RT[4] - g_RT[8] - g_RT[14] + g_RT[15]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[15]) + (h_RT[8] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] -= q; // H + wdot[8] += q; // OH + wdot[14] += q; // HNO + wdot[15] -= q; // HNO2 + // d()/d[H] + dqdci = +k_f * sc[15]; + J[132] -= dqdci; // dwdot[H]/d[H] + J[136] += dqdci; // dwdot[OH]/d[H] + J[142] += dqdci; // dwdot[HNO]/d[H] + J[143] -= dqdci; // dwdot[HNO2]/d[H] + // d()/d[OH] + dqdci = -k_r * sc[14]; + J[260] -= dqdci; // dwdot[H]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[270] += dqdci; // dwdot[HNO]/d[OH] + J[271] -= dqdci; // dwdot[HNO2]/d[OH] + // d()/d[HNO] + dqdci = -k_r * sc[8]; + J[452] -= dqdci; // dwdot[H]/d[HNO] + J[456] += dqdci; // dwdot[OH]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[463] -= dqdci; // dwdot[HNO2]/d[HNO] + // d()/d[HNO2] + dqdci = +k_f * sc[4]; + J[484] -= dqdci; // dwdot[H]/d[HNO2] + J[488] += dqdci; // dwdot[OH]/d[HNO2] + J[494] += dqdci; // dwdot[HNO]/d[HNO2] + J[495] -= dqdci; // dwdot[HNO2]/d[HNO2] + // d()/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1007] -= dqdT; // dwdot[HNO2]/dT + + // reaction 200: NO + OH <=> HNO2 + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[8] * sc[11]; + k_f = + 1437278448551.32 * exp(-3.03239947553856 * logT - (1958.298666124) * invT); + dlnkfdT = -3.03239947553856 * invT + (1958.298666124) * invT2; + // reverse + phi_r = sc[15]; + Kc = refCinv * exp(g_RT[8] + g_RT[11] - g_RT[15]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[11]) + (h_RT[15]) + 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[8] -= q; // OH + wdot[11] -= q; // NO + wdot[15] += q; // HNO2 + // d()/d[OH] + dqdci = +k_f * sc[11]; + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[267] -= dqdci; // dwdot[NO]/d[OH] + J[271] += dqdci; // dwdot[HNO2]/d[OH] + // d()/d[NO] + dqdci = +k_f * sc[8]; + J[360] -= dqdci; // dwdot[OH]/d[NO] + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[367] += dqdci; // dwdot[HNO2]/d[NO] + // d()/d[HNO2] + dqdci = -k_r; + J[488] -= dqdci; // dwdot[OH]/d[HNO2] + J[491] -= dqdci; // dwdot[NO]/d[HNO2] + J[495] += dqdci; // dwdot[HNO2]/d[HNO2] + // d()/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1007] += dqdT; // dwdot[HNO2]/dT + + // reaction 202: HONO2 + OH <=> H2O + NO3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[17]; + k_f = 9040 * exp(-(-623.988665597852) * invT); + dlnkfdT = (-623.988665597852) * invT2; + // reverse + phi_r = sc[7] * sc[25]; + Kc = exp(-g_RT[7] + g_RT[8] + g_RT[17] - g_RT[25]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[17]) + (h_RT[7] + h_RT[25])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[17] -= q; // HONO2 + wdot[25] += q; // NO3 + // d()/d[H2O] + dqdci = -k_r * sc[25]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[241] -= dqdci; // dwdot[HONO2]/d[H2O] + J[249] += dqdci; // dwdot[NO3]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[17]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[273] -= dqdci; // dwdot[HONO2]/d[OH] + J[281] += dqdci; // dwdot[NO3]/d[OH] + // d()/d[HONO2] + dqdci = +k_f * sc[8]; + J[551] += dqdci; // dwdot[H2O]/d[HONO2] + J[552] -= dqdci; // dwdot[OH]/d[HONO2] + J[561] -= dqdci; // dwdot[HONO2]/d[HONO2] + J[569] += dqdci; // dwdot[NO3]/d[HONO2] + // d()/d[NO3] + dqdci = -k_r * sc[7]; + J[807] += dqdci; // dwdot[H2O]/d[NO3] + J[808] -= dqdci; // dwdot[OH]/d[NO3] + J[817] -= dqdci; // dwdot[HONO2]/d[NO3] + J[825] += dqdci; // dwdot[NO3]/d[NO3] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1009] -= dqdT; // dwdot[HONO2]/dT + J[1017] += dqdT; // dwdot[NO3]/dT + + amrex::Real c_R[31], dcRdT[31], e_RT[31]; + amrex::Real* eh_RT; + if (HP == 1) { + cp_R(c_R, T); + dcvpRdT(dcRdT, T); + eh_RT = &h_RT[0]; + } else { + cv_R(c_R, T); + dcvpRdT(dcRdT, T); + speciesInternalEnergy(e_RT, T); + eh_RT = &e_RT[0]; + } + + amrex::Real cmix = 0.0, ehmix = 0.0, dcmixdT = 0.0, dehmixdT = 0.0; + for (int k = 0; k < 31; ++k) { + cmix += c_R[k] * sc[k]; + dcmixdT += dcRdT[k] * sc[k]; + ehmix += eh_RT[k] * wdot[k]; + dehmixdT += invT * (c_R[k] - eh_RT[k]) * wdot[k] + eh_RT[k] * J[992 + k]; + } + + amrex::Real cmixinv = 1.0 / cmix; + amrex::Real tmp1 = ehmix * cmixinv; + amrex::Real tmp3 = cmixinv * T; + amrex::Real tmp2 = tmp1 * tmp3; + amrex::Real dehmixdc; + // dTdot/d[X] + for (int k = 0; k < 31; ++k) { + dehmixdc = 0.0; + for (int m = 0; m < 31; ++m) { + dehmixdc += eh_RT[m] * J[k * 32 + m]; + } + J[k * 32 + 31] = tmp2 * c_R[k] - tmp3 * dehmixdc; + } + // dTdot/dT + J[1023] = -tmp1 + tmp2 * dcmixdT - tmp3 * dehmixdT; +#else + amrex::Abort(); +#endif +} + +// compute an approx to the reaction Jacobian (for preconditioning) +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +DWDOT_SIMPLIFIED( + amrex::Real* J, const amrex::Real* sc, const amrex::Real* Tp, const int* HP) +{ + amrex::Real c[31]; + + for (int k = 0; k < 31; k++) { + c[k] = 1.e6 * sc[k]; + } + + aJacobian_precond(J, c, *Tp, *HP); + + // dwdot[k]/dT + // dTdot/d[X] + for (int k = 0; k < 31; k++) { + J[992 + k] *= 1.e-6; + J[k * 32 + 31] *= 1.e6; + } +} + +// compute the reaction Jacobian +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +aJacobian( + amrex::Real* J, const amrex::Real* sc, const amrex::Real T, const int consP) +{ + +#if defined(PELE_COMPILE_AJACOBIAN) || !defined(AMREX_USE_HIP) + for (int i = 0; i < 1024; i++) { + J[i] = 0.0; + } + + amrex::Real wdot[31]; + for (auto& val : wdot) { + val = 0.0; + } + + const amrex::Real invT = 1.0 / T; + const amrex::Real invT2 = invT * invT; + const amrex::Real logT = log(T); + + // reference concentration: P_atm / (RT) in inverse mol/m^3 + amrex::Real refC = 101325 / 8.31446 / T; + amrex::Real refCinv = 1.0 / refC; + + // compute the mixture concentration + amrex::Real mixture = 0.0; + for (int k = 0; k < 31; ++k) { + mixture += sc[k]; + } + + // compute the Gibbs free energy + amrex::Real g_RT[31]; + gibbs(g_RT, T); + + // compute the species enthalpy + amrex::Real h_RT[31]; + speciesEnthalpy(h_RT, T); + + amrex::Real phi_f, k_f, k_r, phi_r, Kc, q, q_nocor, Corr, alpha; + amrex::Real dlnkfdT, dlnk0dT, dlnKcdT, dkrdT, dqdT; + amrex::Real dqdci, dcdc_fac, dqdc[31]; + amrex::Real Pr, fPr, F, k_0, logPr; + amrex::Real logFcent, troe_c, troe_n, troePr_den, troePr, troe; + amrex::Real Fcent1, Fcent2, Fcent3, Fcent; + amrex::Real dlogFdc, dlogFdn, dlogFdcn_fac; + amrex::Real dlogPrdT, dlogfPrdT, dlogFdT, dlogFcentdT, dlogFdlogPr, dlnCorrdT; + const amrex::Real ln10 = log(10.0); + const amrex::Real log10e = 1.0 / log(10.0); + // reaction 8: H2O2 (+M) <=> 2 OH (+M) + // a third-body and pressure-fall-off reaction + // 3-body correction factor + alpha = mixture + (1.5 - 1) * sc[1] + (0.65 - 1) * sc[2] + (3.7 - 1) * sc[3] + + (1.2 - 1) * sc[5] + (7.65 - 1) * sc[7] + (7.7 - 1) * sc[9]; + // forward + phi_f = sc[9]; + k_f = 2000000000000 * exp(0.9 * logT - (24531.3092413143) * invT); + dlnkfdT = 0.9 * invT + (24531.3092413143) * invT2; + // pressure-fall-off + k_0 = 2.49e+24 * exp(-2.3 * logT - (24531.3092413143) * invT); + Pr = 1e-6 * alpha / k_f * k_0; + fPr = Pr / (1.0 + Pr); + dlnk0dT = -2.3 * invT + (24531.3092413143) * invT2; + dlogPrdT = log10e * (dlnk0dT - dlnkfdT); + dlogfPrdT = dlogPrdT / (1.0 + Pr); + // Troe form + logPr = log10(Pr); + Fcent1 = (1. - 0.43) * exp(-T / 1e-30); + Fcent2 = 0.43 * exp(-T / 1e+30); + Fcent3 = 0.; + Fcent = Fcent1 + Fcent2 + Fcent3; + logFcent = log10(Fcent); + troe_c = -.4 - .67 * logFcent; + troe_n = .75 - 1.27 * logFcent; + troePr_den = 1.0 / (troe_n - .14 * (troe_c + logPr)); + troePr = (troe_c + logPr) * troePr_den; + troe = 1.0 / (1.0 + troePr * troePr); + F = exp(M_LN10 * logFcent * troe); + dlogFcentdT = log10e / Fcent * (-Fcent1 / 1e-30 - Fcent2 / 1e+30); + dlogFdcn_fac = 2.0 * logFcent * troe * troe * troePr * troePr_den; + dlogFdc = -troe_n * dlogFdcn_fac * troePr_den; + dlogFdn = dlogFdcn_fac * troePr; + dlogFdlogPr = dlogFdc; + dlogFdT = dlogFcentdT * (troe - 0.67 * dlogFdc - 1.27 * dlogFdn) + + dlogFdlogPr * dlogPrdT; + // reverse + phi_r = (sc[8] * sc[8]); + Kc = refC * exp(-2.000000 * g_RT[8] + g_RT[9]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[9]) + (2.000000 * h_RT[8]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + Corr = fPr * F; + q = Corr * q_nocor; + dlnCorrdT = ln10 * (dlogfPrdT + dlogFdT); + dqdT = Corr * (dlnkfdT * k_f * phi_f - dkrdT * phi_r) + dlnCorrdT * q; + // update wdot + wdot[8] += 2 * q; // OH + wdot[9] -= q; // H2O2 + // for convenience + k_f *= Corr; + k_r *= Corr; + dcdc_fac = q / alpha * (1.0 / (Pr + 1.0) + dlogFdlogPr); + if (consP == 1) { + // d()/d[N2] + dqdci = (1.5 - 1) * dcdc_fac; + J[40] += 2 * dqdci; // dwdot[OH]/d[N2] + J[41] -= dqdci; // dwdot[H2O2]/d[N2] + // d()/d[HE] + dqdci = (0.65 - 1) * dcdc_fac; + J[72] += 2 * dqdci; // dwdot[OH]/d[HE] + J[73] -= dqdci; // dwdot[H2O2]/d[HE] + // d()/d[H2] + dqdci = (3.7 - 1) * dcdc_fac; + J[104] += 2 * dqdci; // dwdot[OH]/d[H2] + J[105] -= dqdci; // dwdot[H2O2]/d[H2] + // d()/d[O2] + dqdci = (1.2 - 1) * dcdc_fac; + J[168] += 2 * dqdci; // dwdot[OH]/d[O2] + J[169] -= dqdci; // dwdot[H2O2]/d[O2] + // d()/d[H2O] + dqdci = (7.65 - 1) * dcdc_fac; + J[232] += 2 * dqdci; // dwdot[OH]/d[H2O] + J[233] -= dqdci; // dwdot[H2O2]/d[H2O] + // d()/d[OH] + dqdci = -k_r * 2.000000 * sc[8]; + J[264] += 2 * dqdci; // dwdot[OH]/d[OH] + J[265] -= dqdci; // dwdot[H2O2]/d[OH] + // d()/d[H2O2] + dqdci = (7.7 - 1) * dcdc_fac + k_f; + J[296] += 2 * dqdci; // dwdot[OH]/d[H2O2] + J[297] -= dqdci; // dwdot[H2O2]/d[H2O2] + } else { + dqdc[0] = dcdc_fac; + dqdc[1] = 1.5 * dcdc_fac; + dqdc[2] = 0.65 * dcdc_fac; + dqdc[3] = 3.7 * dcdc_fac; + dqdc[4] = dcdc_fac; + dqdc[5] = 1.2 * dcdc_fac; + dqdc[6] = dcdc_fac; + dqdc[7] = 7.65 * dcdc_fac; + dqdc[8] = dcdc_fac - k_r * 2.000000 * sc[8]; + dqdc[9] = 7.7 * dcdc_fac + k_f; + dqdc[10] = dcdc_fac; + dqdc[11] = dcdc_fac; + dqdc[12] = dcdc_fac; + dqdc[13] = dcdc_fac; + dqdc[14] = dcdc_fac; + dqdc[15] = dcdc_fac; + dqdc[16] = dcdc_fac; + dqdc[17] = dcdc_fac; + dqdc[18] = dcdc_fac; + dqdc[19] = dcdc_fac; + dqdc[20] = dcdc_fac; + dqdc[21] = dcdc_fac; + dqdc[22] = dcdc_fac; + dqdc[23] = dcdc_fac; + dqdc[24] = dcdc_fac; + dqdc[25] = dcdc_fac; + dqdc[26] = dcdc_fac; + dqdc[27] = dcdc_fac; + dqdc[28] = dcdc_fac; + dqdc[29] = dcdc_fac; + dqdc[30] = dcdc_fac; + for (int k = 0; k < 31; k++) { + J[32 * k + 8] += 2 * dqdc[k]; + J[32 * k + 9] -= dqdc[k]; + } + } + J[1000] += 2 * dqdT; // dwdot[OH]/dT + J[1001] -= dqdT; // dwdot[H2O2]/dT + + // reaction 21: H + O2 (+M) <=> HO2 (+M) + // a third-body and pressure-fall-off reaction + // 3-body correction factor + alpha = mixture + (0.5 - 1) * sc[0] + (0.64 - 1) * sc[2] + (1.3 - 1) * sc[3] + + (10 - 1) * sc[7]; + // forward + phi_f = sc[4] * sc[5]; + k_f = 4650000 * exp(0.44 * logT); + dlnkfdT = 0.44 * invT; + // pressure-fall-off + k_0 = 1.737e+19 * exp(-1.23 * logT); + Pr = 1e-12 * alpha / k_f * k_0; + fPr = Pr / (1.0 + Pr); + dlnk0dT = -1.23 * invT; + dlogPrdT = log10e * (dlnk0dT - dlnkfdT); + dlogfPrdT = dlogPrdT / (1.0 + Pr); + // Troe form + logPr = log10(Pr); + Fcent1 = (1. - 0.67) * exp(-T / 1e-30); + Fcent2 = 0.67 * exp(-T / 1e+30); + Fcent3 = exp(-1e+30 * invT); + Fcent = Fcent1 + Fcent2 + Fcent3; + logFcent = log10(Fcent); + troe_c = -.4 - .67 * logFcent; + troe_n = .75 - 1.27 * logFcent; + troePr_den = 1.0 / (troe_n - .14 * (troe_c + logPr)); + troePr = (troe_c + logPr) * troePr_den; + troe = 1.0 / (1.0 + troePr * troePr); + F = exp(M_LN10 * logFcent * troe); + dlogFcentdT = log10e / Fcent * + (-Fcent1 / 1e-30 - Fcent2 / 1e+30 + Fcent3 * 1e+30 * invT2); + dlogFdcn_fac = 2.0 * logFcent * troe * troe * troePr * troePr_den; + dlogFdc = -troe_n * dlogFdcn_fac * troePr_den; + dlogFdn = dlogFdcn_fac * troePr; + dlogFdlogPr = dlogFdc; + dlogFdT = dlogFcentdT * (troe - 0.67 * dlogFdc - 1.27 * dlogFdn) + + dlogFdlogPr * dlogPrdT; + // reverse + phi_r = sc[10]; + Kc = refCinv * exp(g_RT[4] + g_RT[5] - g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[5]) + (h_RT[10]) + 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + Corr = fPr * F; + q = Corr * q_nocor; + dlnCorrdT = ln10 * (dlogfPrdT + dlogFdT); + dqdT = Corr * (dlnkfdT * k_f * phi_f - dkrdT * phi_r) + dlnCorrdT * q; + // update wdot + wdot[4] -= q; // H + wdot[5] -= q; // O2 + wdot[10] += q; // HO2 + // for convenience + k_f *= Corr; + k_r *= Corr; + dcdc_fac = q / alpha * (1.0 / (Pr + 1.0) + dlogFdlogPr); + if (consP == 1) { + // d()/d[AR] + dqdci = (0.5 - 1) * dcdc_fac; + J[4] -= dqdci; // dwdot[H]/d[AR] + J[5] -= dqdci; // dwdot[O2]/d[AR] + J[10] += dqdci; // dwdot[HO2]/d[AR] + // d()/d[HE] + dqdci = (0.64 - 1) * dcdc_fac; + J[68] -= dqdci; // dwdot[H]/d[HE] + J[69] -= dqdci; // dwdot[O2]/d[HE] + J[74] += dqdci; // dwdot[HO2]/d[HE] + // d()/d[H2] + dqdci = (1.3 - 1) * dcdc_fac; + J[100] -= dqdci; // dwdot[H]/d[H2] + J[101] -= dqdci; // dwdot[O2]/d[H2] + J[106] += dqdci; // dwdot[HO2]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[5]; + J[132] -= dqdci; // dwdot[H]/d[H] + J[133] -= dqdci; // dwdot[O2]/d[H] + J[138] += dqdci; // dwdot[HO2]/d[H] + // d()/d[O2] + dqdci = +k_f * sc[4]; + J[164] -= dqdci; // dwdot[H]/d[O2] + J[165] -= dqdci; // dwdot[O2]/d[O2] + J[170] += dqdci; // dwdot[HO2]/d[O2] + // d()/d[H2O] + dqdci = (10 - 1) * dcdc_fac; + J[228] -= dqdci; // dwdot[H]/d[H2O] + J[229] -= dqdci; // dwdot[O2]/d[H2O] + J[234] += dqdci; // dwdot[HO2]/d[H2O] + // d()/d[HO2] + dqdci = -k_r; + J[324] -= dqdci; // dwdot[H]/d[HO2] + J[325] -= dqdci; // dwdot[O2]/d[HO2] + J[330] += dqdci; // dwdot[HO2]/d[HO2] + } else { + dqdc[0] = 0.5 * dcdc_fac; + dqdc[1] = dcdc_fac; + dqdc[2] = 0.64 * dcdc_fac; + dqdc[3] = 1.3 * dcdc_fac; + dqdc[4] = dcdc_fac + k_f * sc[5]; + dqdc[5] = dcdc_fac + k_f * sc[4]; + dqdc[6] = dcdc_fac; + dqdc[7] = 10 * dcdc_fac; + dqdc[8] = dcdc_fac; + dqdc[9] = dcdc_fac; + dqdc[10] = dcdc_fac - k_r; + dqdc[11] = dcdc_fac; + dqdc[12] = dcdc_fac; + dqdc[13] = dcdc_fac; + dqdc[14] = dcdc_fac; + dqdc[15] = dcdc_fac; + dqdc[16] = dcdc_fac; + dqdc[17] = dcdc_fac; + dqdc[18] = dcdc_fac; + dqdc[19] = dcdc_fac; + dqdc[20] = dcdc_fac; + dqdc[21] = dcdc_fac; + dqdc[22] = dcdc_fac; + dqdc[23] = dcdc_fac; + dqdc[24] = dcdc_fac; + dqdc[25] = dcdc_fac; + dqdc[26] = dcdc_fac; + dqdc[27] = dcdc_fac; + dqdc[28] = dcdc_fac; + dqdc[29] = dcdc_fac; + dqdc[30] = dcdc_fac; + for (int k = 0; k < 31; k++) { + J[32 * k + 4] -= dqdc[k]; + J[32 * k + 5] -= dqdc[k]; + J[32 * k + 10] += dqdc[k]; + } + } + J[996] -= dqdT; // dwdot[H]/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + + // reaction 47: NH2OH (+M) <=> NH2 + OH (+M) + // a third-body and pressure-fall-off reaction + // 3-body correction factor + alpha = mixture; + // forward + phi_f = sc[20]; + k_f = 1.4e+20 * exp(-1.31 * logT - (32246.1239447664) * invT); + dlnkfdT = -1.31 * invT + (32246.1239447664) * invT2; + // pressure-fall-off + k_0 = 5.4e+37 * exp(-5.96 * logT - (33606.3185924366) * invT); + Pr = 1e-6 * alpha / k_f * k_0; + fPr = Pr / (1.0 + Pr); + dlnk0dT = -5.96 * invT + (33606.3185924366) * invT2; + dlogPrdT = log10e * (dlnk0dT - dlnkfdT); + dlogfPrdT = dlogPrdT / (1.0 + Pr); + // Troe form + logPr = log10(Pr); + Fcent1 = (1. - 0.35) * exp(-T / 1e-30); + Fcent2 = 0.35 * exp(-T / 1e+30); + Fcent3 = exp(-1e+30 * invT); + Fcent = Fcent1 + Fcent2 + Fcent3; + logFcent = log10(Fcent); + troe_c = -.4 - .67 * logFcent; + troe_n = .75 - 1.27 * logFcent; + troePr_den = 1.0 / (troe_n - .14 * (troe_c + logPr)); + troePr = (troe_c + logPr) * troePr_den; + troe = 1.0 / (1.0 + troePr * troePr); + F = exp(M_LN10 * logFcent * troe); + dlogFcentdT = log10e / Fcent * + (-Fcent1 / 1e-30 - Fcent2 / 1e+30 + Fcent3 * 1e+30 * invT2); + dlogFdcn_fac = 2.0 * logFcent * troe * troe * troePr * troePr_den; + dlogFdc = -troe_n * dlogFdcn_fac * troePr_den; + dlogFdn = dlogFdcn_fac * troePr; + dlogFdlogPr = dlogFdc; + dlogFdT = dlogFcentdT * (troe - 0.67 * dlogFdc - 1.27 * dlogFdn) + + dlogFdlogPr * dlogPrdT; + // reverse + phi_r = sc[8] * sc[28]; + Kc = refC * exp(-g_RT[8] + g_RT[20] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[20]) + (h_RT[8] + h_RT[28]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + Corr = fPr * F; + q = Corr * q_nocor; + dlnCorrdT = ln10 * (dlogfPrdT + dlogFdT); + dqdT = Corr * (dlnkfdT * k_f * phi_f - dkrdT * phi_r) + dlnCorrdT * q; + // update wdot + wdot[8] += q; // OH + wdot[20] -= q; // NH2OH + wdot[28] += q; // NH2 + // for convenience + k_f *= Corr; + k_r *= Corr; + dcdc_fac = q / alpha * (1.0 / (Pr + 1.0) + dlogFdlogPr); + if (consP == 1) { + // d()/d[OH] + dqdci = -k_r * sc[28]; + J[264] += dqdci; // dwdot[OH]/d[OH] + J[276] -= dqdci; // dwdot[NH2OH]/d[OH] + J[284] += dqdci; // dwdot[NH2]/d[OH] + // d()/d[NH2OH] + dqdci = +k_f; + J[648] += dqdci; // dwdot[OH]/d[NH2OH] + J[660] -= dqdci; // dwdot[NH2OH]/d[NH2OH] + J[668] += dqdci; // dwdot[NH2]/d[NH2OH] + // d()/d[NH2] + dqdci = -k_r * sc[8]; + J[904] += dqdci; // dwdot[OH]/d[NH2] + J[916] -= dqdci; // dwdot[NH2OH]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + } else { + dqdc[0] = dcdc_fac; + dqdc[1] = dcdc_fac; + dqdc[2] = dcdc_fac; + dqdc[3] = dcdc_fac; + dqdc[4] = dcdc_fac; + dqdc[5] = dcdc_fac; + dqdc[6] = dcdc_fac; + dqdc[7] = dcdc_fac; + dqdc[8] = dcdc_fac - k_r * sc[28]; + dqdc[9] = dcdc_fac; + dqdc[10] = dcdc_fac; + dqdc[11] = dcdc_fac; + dqdc[12] = dcdc_fac; + dqdc[13] = dcdc_fac; + dqdc[14] = dcdc_fac; + dqdc[15] = dcdc_fac; + dqdc[16] = dcdc_fac; + dqdc[17] = dcdc_fac; + dqdc[18] = dcdc_fac; + dqdc[19] = dcdc_fac; + dqdc[20] = dcdc_fac + k_f; + dqdc[21] = dcdc_fac; + dqdc[22] = dcdc_fac; + dqdc[23] = dcdc_fac; + dqdc[24] = dcdc_fac; + dqdc[25] = dcdc_fac; + dqdc[26] = dcdc_fac; + dqdc[27] = dcdc_fac; + dqdc[28] = dcdc_fac - k_r * sc[8]; + dqdc[29] = dcdc_fac; + dqdc[30] = dcdc_fac; + for (int k = 0; k < 31; k++) { + J[32 * k + 8] += dqdc[k]; + J[32 * k + 20] -= dqdc[k]; + J[32 * k + 28] += dqdc[k]; + } + } + J[1000] += dqdT; // dwdot[OH]/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 140: NO + O (+M) <=> NO2 (+M) + // a third-body and pressure-fall-off reaction + // 3-body correction factor + alpha = mixture + (1.7 - 1) * sc[1] + (1.5 - 1) * sc[5] + (10 - 1) * sc[7]; + // forward + phi_f = sc[6] * sc[11]; + k_f = 1300000000 * exp(-0.75 * logT); + dlnkfdT = -0.75 * invT; + // pressure-fall-off + k_0 = 4.72e+24 * exp(-2.87 * logT - (779.985831997315) * invT); + Pr = 1e-12 * alpha / k_f * k_0; + fPr = Pr / (1.0 + Pr); + dlnk0dT = -2.87 * invT + (779.985831997315) * invT2; + dlogPrdT = log10e * (dlnk0dT - dlnkfdT); + dlogfPrdT = dlogPrdT / (1.0 + Pr); + // Troe form + logPr = log10(Pr); + Fcent1 = (1. - 0.75) * exp(-T / 1000); + Fcent2 = 0.75 * exp(-T / 100000); + Fcent3 = exp(-1e+30 * invT); + Fcent = Fcent1 + Fcent2 + Fcent3; + logFcent = log10(Fcent); + troe_c = -.4 - .67 * logFcent; + troe_n = .75 - 1.27 * logFcent; + troePr_den = 1.0 / (troe_n - .14 * (troe_c + logPr)); + troePr = (troe_c + logPr) * troePr_den; + troe = 1.0 / (1.0 + troePr * troePr); + F = exp(M_LN10 * logFcent * troe); + dlogFcentdT = log10e / Fcent * + (-Fcent1 / 1000 - Fcent2 / 100000 + Fcent3 * 1e+30 * invT2); + dlogFdcn_fac = 2.0 * logFcent * troe * troe * troePr * troePr_den; + dlogFdc = -troe_n * dlogFdcn_fac * troePr_den; + dlogFdn = dlogFdcn_fac * troePr; + dlogFdlogPr = dlogFdc; + dlogFdT = dlogFcentdT * (troe - 0.67 * dlogFdc - 1.27 * dlogFdn) + + dlogFdlogPr * dlogPrdT; + // reverse + phi_r = sc[13]; + Kc = refCinv * exp(g_RT[6] + g_RT[11] - g_RT[13]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[11]) + (h_RT[13]) + 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + Corr = fPr * F; + q = Corr * q_nocor; + dlnCorrdT = ln10 * (dlogfPrdT + dlogFdT); + dqdT = Corr * (dlnkfdT * k_f * phi_f - dkrdT * phi_r) + dlnCorrdT * q; + // update wdot + wdot[6] -= q; // O + wdot[11] -= q; // NO + wdot[13] += q; // NO2 + // for convenience + k_f *= Corr; + k_r *= Corr; + dcdc_fac = q / alpha * (1.0 / (Pr + 1.0) + dlogFdlogPr); + if (consP == 1) { + // d()/d[N2] + dqdci = (1.7 - 1) * dcdc_fac; + J[38] -= dqdci; // dwdot[O]/d[N2] + J[43] -= dqdci; // dwdot[NO]/d[N2] + J[45] += dqdci; // dwdot[NO2]/d[N2] + // d()/d[O2] + dqdci = (1.5 - 1) * dcdc_fac; + J[166] -= dqdci; // dwdot[O]/d[O2] + J[171] -= dqdci; // dwdot[NO]/d[O2] + J[173] += dqdci; // dwdot[NO2]/d[O2] + // d()/d[O] + dqdci = +k_f * sc[11]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[203] -= dqdci; // dwdot[NO]/d[O] + J[205] += dqdci; // dwdot[NO2]/d[O] + // d()/d[H2O] + dqdci = (10 - 1) * dcdc_fac; + J[230] -= dqdci; // dwdot[O]/d[H2O] + J[235] -= dqdci; // dwdot[NO]/d[H2O] + J[237] += dqdci; // dwdot[NO2]/d[H2O] + // d()/d[NO] + dqdci = +k_f * sc[6]; + J[358] -= dqdci; // dwdot[O]/d[NO] + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[365] += dqdci; // dwdot[NO2]/d[NO] + // d()/d[NO2] + dqdci = -k_r; + J[422] -= dqdci; // dwdot[O]/d[NO2] + J[427] -= dqdci; // dwdot[NO]/d[NO2] + J[429] += dqdci; // dwdot[NO2]/d[NO2] + } else { + dqdc[0] = dcdc_fac; + dqdc[1] = 1.7 * dcdc_fac; + dqdc[2] = dcdc_fac; + dqdc[3] = dcdc_fac; + dqdc[4] = dcdc_fac; + dqdc[5] = 1.5 * dcdc_fac; + dqdc[6] = dcdc_fac + k_f * sc[11]; + dqdc[7] = 10 * dcdc_fac; + dqdc[8] = dcdc_fac; + dqdc[9] = dcdc_fac; + dqdc[10] = dcdc_fac; + dqdc[11] = dcdc_fac + k_f * sc[6]; + dqdc[12] = dcdc_fac; + dqdc[13] = dcdc_fac - k_r; + dqdc[14] = dcdc_fac; + dqdc[15] = dcdc_fac; + dqdc[16] = dcdc_fac; + dqdc[17] = dcdc_fac; + dqdc[18] = dcdc_fac; + dqdc[19] = dcdc_fac; + dqdc[20] = dcdc_fac; + dqdc[21] = dcdc_fac; + dqdc[22] = dcdc_fac; + dqdc[23] = dcdc_fac; + dqdc[24] = dcdc_fac; + dqdc[25] = dcdc_fac; + dqdc[26] = dcdc_fac; + dqdc[27] = dcdc_fac; + dqdc[28] = dcdc_fac; + dqdc[29] = dcdc_fac; + dqdc[30] = dcdc_fac; + for (int k = 0; k < 31; k++) { + J[32 * k + 6] -= dqdc[k]; + J[32 * k + 11] -= dqdc[k]; + J[32 * k + 13] += dqdc[k]; + } + } + J[998] -= dqdT; // dwdot[O]/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + + // reaction 182: NO2 + O (+M) <=> NO3 (+M) + // a third-body and pressure-fall-off reaction + // 3-body correction factor + alpha = mixture; + // forward + phi_f = sc[6] * sc[13]; + k_f = 3500000 * exp(0.24 * logT); + dlnkfdT = 0.24 * invT; + // pressure-fall-off + k_0 = 2.5e+20 * exp(-1.5 * logT); + Pr = 1e-12 * alpha / k_f * k_0; + fPr = Pr / (1.0 + Pr); + dlnk0dT = -1.5 * invT; + dlogPrdT = log10e * (dlnk0dT - dlnkfdT); + dlogfPrdT = dlogPrdT / (1.0 + Pr); + // Troe form + logPr = log10(Pr); + Fcent1 = (1. - 0.71) * exp(-T / 1e-30); + Fcent2 = 0.71 * exp(-T / 1700); + Fcent3 = exp(-1e+30 * invT); + Fcent = Fcent1 + Fcent2 + Fcent3; + logFcent = log10(Fcent); + troe_c = -.4 - .67 * logFcent; + troe_n = .75 - 1.27 * logFcent; + troePr_den = 1.0 / (troe_n - .14 * (troe_c + logPr)); + troePr = (troe_c + logPr) * troePr_den; + troe = 1.0 / (1.0 + troePr * troePr); + F = exp(M_LN10 * logFcent * troe); + dlogFcentdT = + log10e / Fcent * (-Fcent1 / 1e-30 - Fcent2 / 1700 + Fcent3 * 1e+30 * invT2); + dlogFdcn_fac = 2.0 * logFcent * troe * troe * troePr * troePr_den; + dlogFdc = -troe_n * dlogFdcn_fac * troePr_den; + dlogFdn = dlogFdcn_fac * troePr; + dlogFdlogPr = dlogFdc; + dlogFdT = dlogFcentdT * (troe - 0.67 * dlogFdc - 1.27 * dlogFdn) + + dlogFdlogPr * dlogPrdT; + // reverse + phi_r = sc[25]; + Kc = refCinv * exp(g_RT[6] + g_RT[13] - g_RT[25]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[13]) + (h_RT[25]) + 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + Corr = fPr * F; + q = Corr * q_nocor; + dlnCorrdT = ln10 * (dlogfPrdT + dlogFdT); + dqdT = Corr * (dlnkfdT * k_f * phi_f - dkrdT * phi_r) + dlnCorrdT * q; + // update wdot + wdot[6] -= q; // O + wdot[13] -= q; // NO2 + wdot[25] += q; // NO3 + // for convenience + k_f *= Corr; + k_r *= Corr; + dcdc_fac = q / alpha * (1.0 / (Pr + 1.0) + dlogFdlogPr); + if (consP == 1) { + // d()/d[O] + dqdci = +k_f * sc[13]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[205] -= dqdci; // dwdot[NO2]/d[O] + J[217] += dqdci; // dwdot[NO3]/d[O] + // d()/d[NO2] + dqdci = +k_f * sc[6]; + J[422] -= dqdci; // dwdot[O]/d[NO2] + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[441] += dqdci; // dwdot[NO3]/d[NO2] + // d()/d[NO3] + dqdci = -k_r; + J[806] -= dqdci; // dwdot[O]/d[NO3] + J[813] -= dqdci; // dwdot[NO2]/d[NO3] + J[825] += dqdci; // dwdot[NO3]/d[NO3] + } else { + dqdc[0] = dcdc_fac; + dqdc[1] = dcdc_fac; + dqdc[2] = dcdc_fac; + dqdc[3] = dcdc_fac; + dqdc[4] = dcdc_fac; + dqdc[5] = dcdc_fac; + dqdc[6] = dcdc_fac + k_f * sc[13]; + dqdc[7] = dcdc_fac; + dqdc[8] = dcdc_fac; + dqdc[9] = dcdc_fac; + dqdc[10] = dcdc_fac; + dqdc[11] = dcdc_fac; + dqdc[12] = dcdc_fac; + dqdc[13] = dcdc_fac + k_f * sc[6]; + dqdc[14] = dcdc_fac; + dqdc[15] = dcdc_fac; + dqdc[16] = dcdc_fac; + dqdc[17] = dcdc_fac; + dqdc[18] = dcdc_fac; + dqdc[19] = dcdc_fac; + dqdc[20] = dcdc_fac; + dqdc[21] = dcdc_fac; + dqdc[22] = dcdc_fac; + dqdc[23] = dcdc_fac; + dqdc[24] = dcdc_fac; + dqdc[25] = dcdc_fac - k_r; + dqdc[26] = dcdc_fac; + dqdc[27] = dcdc_fac; + dqdc[28] = dcdc_fac; + dqdc[29] = dcdc_fac; + dqdc[30] = dcdc_fac; + for (int k = 0; k < 31; k++) { + J[32 * k + 6] -= dqdc[k]; + J[32 * k + 13] -= dqdc[k]; + J[32 * k + 25] += dqdc[k]; + } + } + J[998] -= dqdT; // dwdot[O]/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1017] += dqdT; // dwdot[NO3]/dT + + // reaction 201: NO2 + OH (+M) <=> HONO2 (+M) + // a third-body and pressure-fall-off reaction + // 3-body correction factor + alpha = mixture; + // forward + phi_f = sc[8] * sc[13]; + k_f = 30000000; + dlnkfdT = 0.0; + // pressure-fall-off + k_0 = 2.938e+25 * exp(-3 * logT); + Pr = 1e-12 * alpha / k_f * k_0; + fPr = Pr / (1.0 + Pr); + dlnk0dT = -3 * invT; + dlogPrdT = log10e * (dlnk0dT - dlnkfdT); + dlogfPrdT = dlogPrdT / (1.0 + Pr); + // Troe form + logPr = log10(Pr); + Fcent1 = (1. - 0.4) * exp(-T / 1e-30); + Fcent2 = 0.4 * exp(-T / 1e+30); + Fcent3 = exp(-1e+30 * invT); + Fcent = Fcent1 + Fcent2 + Fcent3; + logFcent = log10(Fcent); + troe_c = -.4 - .67 * logFcent; + troe_n = .75 - 1.27 * logFcent; + troePr_den = 1.0 / (troe_n - .14 * (troe_c + logPr)); + troePr = (troe_c + logPr) * troePr_den; + troe = 1.0 / (1.0 + troePr * troePr); + F = exp(M_LN10 * logFcent * troe); + dlogFcentdT = log10e / Fcent * + (-Fcent1 / 1e-30 - Fcent2 / 1e+30 + Fcent3 * 1e+30 * invT2); + dlogFdcn_fac = 2.0 * logFcent * troe * troe * troePr * troePr_den; + dlogFdc = -troe_n * dlogFdcn_fac * troePr_den; + dlogFdn = dlogFdcn_fac * troePr; + dlogFdlogPr = dlogFdc; + dlogFdT = dlogFcentdT * (troe - 0.67 * dlogFdc - 1.27 * dlogFdn) + + dlogFdlogPr * dlogPrdT; + // reverse + phi_r = sc[17]; + Kc = refCinv * exp(g_RT[8] + g_RT[13] - g_RT[17]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[13]) + (h_RT[17]) + 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + Corr = fPr * F; + q = Corr * q_nocor; + dlnCorrdT = ln10 * (dlogfPrdT + dlogFdT); + dqdT = Corr * (dlnkfdT * k_f * phi_f - dkrdT * phi_r) + dlnCorrdT * q; + // update wdot + wdot[8] -= q; // OH + wdot[13] -= q; // NO2 + wdot[17] += q; // HONO2 + // for convenience + k_f *= Corr; + k_r *= Corr; + dcdc_fac = q / alpha * (1.0 / (Pr + 1.0) + dlogFdlogPr); + if (consP == 1) { + // d()/d[OH] + dqdci = +k_f * sc[13]; + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[269] -= dqdci; // dwdot[NO2]/d[OH] + J[273] += dqdci; // dwdot[HONO2]/d[OH] + // d()/d[NO2] + dqdci = +k_f * sc[8]; + J[424] -= dqdci; // dwdot[OH]/d[NO2] + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[433] += dqdci; // dwdot[HONO2]/d[NO2] + // d()/d[HONO2] + dqdci = -k_r; + J[552] -= dqdci; // dwdot[OH]/d[HONO2] + J[557] -= dqdci; // dwdot[NO2]/d[HONO2] + J[561] += dqdci; // dwdot[HONO2]/d[HONO2] + } else { + dqdc[0] = dcdc_fac; + dqdc[1] = dcdc_fac; + dqdc[2] = dcdc_fac; + dqdc[3] = dcdc_fac; + dqdc[4] = dcdc_fac; + dqdc[5] = dcdc_fac; + dqdc[6] = dcdc_fac; + dqdc[7] = dcdc_fac; + dqdc[8] = dcdc_fac + k_f * sc[13]; + dqdc[9] = dcdc_fac; + dqdc[10] = dcdc_fac; + dqdc[11] = dcdc_fac; + dqdc[12] = dcdc_fac; + dqdc[13] = dcdc_fac + k_f * sc[8]; + dqdc[14] = dcdc_fac; + dqdc[15] = dcdc_fac; + dqdc[16] = dcdc_fac; + dqdc[17] = dcdc_fac - k_r; + dqdc[18] = dcdc_fac; + dqdc[19] = dcdc_fac; + dqdc[20] = dcdc_fac; + dqdc[21] = dcdc_fac; + dqdc[22] = dcdc_fac; + dqdc[23] = dcdc_fac; + dqdc[24] = dcdc_fac; + dqdc[25] = dcdc_fac; + dqdc[26] = dcdc_fac; + dqdc[27] = dcdc_fac; + dqdc[28] = dcdc_fac; + dqdc[29] = dcdc_fac; + dqdc[30] = dcdc_fac; + for (int k = 0; k < 31; k++) { + J[32 * k + 8] -= dqdc[k]; + J[32 * k + 13] -= dqdc[k]; + J[32 * k + 17] += dqdc[k]; + } + } + J[1000] -= dqdT; // dwdot[OH]/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1009] += dqdT; // dwdot[HONO2]/dT + + // reaction 187: N2O (+M) <=> N2 + O (+M) + // a third-body and pressure-fall-off reaction + // 3-body correction factor + alpha = mixture + (1.7 - 1) * sc[1] + (1.4 - 1) * sc[5] + (12 - 1) * sc[7]; + // forward + phi_f = sc[12]; + k_f = 99000000000 * exp(-(29136.7481667591) * invT); + dlnkfdT = (29136.7481667591) * invT2; + // pressure-fall-off + k_0 = 602000000000000 * exp(-(28906.7781504863) * invT); + Pr = 1e-6 * alpha / k_f * k_0; + fPr = Pr / (1.0 + Pr); + dlnk0dT = (28906.7781504863) * invT2; + dlogPrdT = log10e * (dlnk0dT - dlnkfdT); + dlogfPrdT = dlogPrdT / (1.0 + Pr); + // Lindemann form + F = 1.0; + dlogFdlogPr = 0.0; + dlogFdT = 0.0; + // reverse + phi_r = sc[1] * sc[6]; + Kc = refC * exp(-g_RT[1] - g_RT[6] + g_RT[12]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[12]) + (h_RT[1] + h_RT[6]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + Corr = fPr * F; + q = Corr * q_nocor; + dlnCorrdT = ln10 * (dlogfPrdT + dlogFdT); + dqdT = Corr * (dlnkfdT * k_f * phi_f - dkrdT * phi_r) + dlnCorrdT * q; + // update wdot + wdot[1] += q; // N2 + wdot[6] += q; // O + wdot[12] -= q; // N2O + // for convenience + k_f *= Corr; + k_r *= Corr; + dcdc_fac = q / alpha * (1.0 / (Pr + 1.0) + dlogFdlogPr); + if (consP == 1) { + // d()/d[N2] + dqdci = (1.7 - 1) * dcdc_fac - k_r * sc[6]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[38] += dqdci; // dwdot[O]/d[N2] + J[44] -= dqdci; // dwdot[N2O]/d[N2] + // d()/d[O2] + dqdci = (1.4 - 1) * dcdc_fac; + J[161] += dqdci; // dwdot[N2]/d[O2] + J[166] += dqdci; // dwdot[O]/d[O2] + J[172] -= dqdci; // dwdot[N2O]/d[O2] + // d()/d[O] + dqdci = -k_r * sc[1]; + J[193] += dqdci; // dwdot[N2]/d[O] + J[198] += dqdci; // dwdot[O]/d[O] + J[204] -= dqdci; // dwdot[N2O]/d[O] + // d()/d[H2O] + dqdci = (12 - 1) * dcdc_fac; + J[225] += dqdci; // dwdot[N2]/d[H2O] + J[230] += dqdci; // dwdot[O]/d[H2O] + J[236] -= dqdci; // dwdot[N2O]/d[H2O] + // d()/d[N2O] + dqdci = +k_f; + J[385] += dqdci; // dwdot[N2]/d[N2O] + J[390] += dqdci; // dwdot[O]/d[N2O] + J[396] -= dqdci; // dwdot[N2O]/d[N2O] + } else { + dqdc[0] = dcdc_fac; + dqdc[1] = 1.7 * dcdc_fac - k_r * sc[6]; + dqdc[2] = dcdc_fac; + dqdc[3] = dcdc_fac; + dqdc[4] = dcdc_fac; + dqdc[5] = 1.4 * dcdc_fac; + dqdc[6] = dcdc_fac - k_r * sc[1]; + dqdc[7] = 12 * dcdc_fac; + dqdc[8] = dcdc_fac; + dqdc[9] = dcdc_fac; + dqdc[10] = dcdc_fac; + dqdc[11] = dcdc_fac; + dqdc[12] = dcdc_fac + k_f; + dqdc[13] = dcdc_fac; + dqdc[14] = dcdc_fac; + dqdc[15] = dcdc_fac; + dqdc[16] = dcdc_fac; + dqdc[17] = dcdc_fac; + dqdc[18] = dcdc_fac; + dqdc[19] = dcdc_fac; + dqdc[20] = dcdc_fac; + dqdc[21] = dcdc_fac; + dqdc[22] = dcdc_fac; + dqdc[23] = dcdc_fac; + dqdc[24] = dcdc_fac; + dqdc[25] = dcdc_fac; + dqdc[26] = dcdc_fac; + dqdc[27] = dcdc_fac; + dqdc[28] = dcdc_fac; + dqdc[29] = dcdc_fac; + dqdc[30] = dcdc_fac; + for (int k = 0; k < 31; k++) { + J[32 * k + 1] += dqdc[k]; + J[32 * k + 6] += dqdc[k]; + J[32 * k + 12] -= dqdc[k]; + } + } + J[993] += dqdT; // dwdot[N2]/dT + J[998] += dqdT; // dwdot[O]/dT + J[1004] -= dqdT; // dwdot[N2O]/dT + + // reaction 0: H2 + M <=> 2 H + M + // a third-body and non-pressure-fall-off reaction + // 3-body correction factor + alpha = mixture + (0.83 - 1) * sc[2] + (2.5 - 1) * sc[3] + (12 - 1) * sc[7]; + // forward + phi_f = sc[3]; + k_f = 45770000000000 * exp(-1.4 * logT - (52535.8199100127) * invT); + dlnkfdT = -1.4 * invT + (52535.8199100127) * invT2; + // reverse + phi_r = (sc[4] * sc[4]); + Kc = refC * exp(g_RT[3] - 2.000000 * g_RT[4]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[3]) + (2.000000 * h_RT[4]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + q = alpha * q_nocor; + dqdT = alpha * (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] -= q; // H2 + wdot[4] += 2 * q; // H + // for convenience + k_f *= alpha; + k_r *= alpha; + if (consP == 1) { + // d()/d[HE] + dqdci = (0.83 - 1) * q_nocor; + J[67] -= dqdci; // dwdot[H2]/d[HE] + J[68] += 2 * dqdci; // dwdot[H]/d[HE] + // d()/d[H2] + dqdci = (2.5 - 1) * q_nocor + k_f; + J[99] -= dqdci; // dwdot[H2]/d[H2] + J[100] += 2 * dqdci; // dwdot[H]/d[H2] + // d()/d[H] + dqdci = -k_r * 2.000000 * sc[4]; + J[131] -= dqdci; // dwdot[H2]/d[H] + J[132] += 2 * dqdci; // dwdot[H]/d[H] + // d()/d[H2O] + dqdci = (12 - 1) * q_nocor; + J[227] -= dqdci; // dwdot[H2]/d[H2O] + J[228] += 2 * dqdci; // dwdot[H]/d[H2O] + } else { + dqdc[0] = q_nocor; + dqdc[1] = q_nocor; + dqdc[2] = 0.83 * q_nocor; + dqdc[3] = 2.5 * q_nocor + k_f; + dqdc[4] = q_nocor - k_r * 2.000000 * sc[4]; + dqdc[5] = q_nocor; + dqdc[6] = q_nocor; + dqdc[7] = 12 * q_nocor; + dqdc[8] = q_nocor; + dqdc[9] = q_nocor; + dqdc[10] = q_nocor; + dqdc[11] = q_nocor; + dqdc[12] = q_nocor; + dqdc[13] = q_nocor; + dqdc[14] = q_nocor; + dqdc[15] = q_nocor; + dqdc[16] = q_nocor; + dqdc[17] = q_nocor; + dqdc[18] = q_nocor; + dqdc[19] = q_nocor; + dqdc[20] = q_nocor; + dqdc[21] = q_nocor; + dqdc[22] = q_nocor; + dqdc[23] = q_nocor; + dqdc[24] = q_nocor; + dqdc[25] = q_nocor; + dqdc[26] = q_nocor; + dqdc[27] = q_nocor; + dqdc[28] = q_nocor; + dqdc[29] = q_nocor; + dqdc[30] = q_nocor; + for (int k = 0; k < 31; k++) { + J[32 * k + 3] -= dqdc[k]; + J[32 * k + 4] += 2 * dqdc[k]; + } + } + J[995] -= dqdT; // dwdot[H2]/dT + J[996] += 2 * dqdT; // dwdot[H]/dT + + // reaction 3: 2 O + M <=> O2 + M + // a third-body and non-pressure-fall-off reaction + // 3-body correction factor + alpha = mixture + (0.83 - 1) * sc[0] + (0.83 - 1) * sc[2] + + (2.5 - 1) * sc[3] + (12 - 1) * sc[7]; + // forward + phi_f = (sc[6] * sc[6]); + k_f = 6165 * exp(-0.5 * logT); + dlnkfdT = -0.5 * invT; + // reverse + phi_r = sc[5]; + Kc = refCinv * exp(-g_RT[5] + 2.000000 * g_RT[6]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(2.000000 * h_RT[6]) + (h_RT[5]) + 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + q = alpha * q_nocor; + dqdT = alpha * (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[6] -= 2 * q; // O + // for convenience + k_f *= alpha; + k_r *= alpha; + if (consP == 1) { + // d()/d[AR] + dqdci = (0.83 - 1) * q_nocor; + J[5] += dqdci; // dwdot[O2]/d[AR] + J[6] += -2 * dqdci; // dwdot[O]/d[AR] + // d()/d[HE] + dqdci = (0.83 - 1) * q_nocor; + J[69] += dqdci; // dwdot[O2]/d[HE] + J[70] += -2 * dqdci; // dwdot[O]/d[HE] + // d()/d[H2] + dqdci = (2.5 - 1) * q_nocor; + J[101] += dqdci; // dwdot[O2]/d[H2] + J[102] += -2 * dqdci; // dwdot[O]/d[H2] + // d()/d[O2] + dqdci = -k_r; + J[165] += dqdci; // dwdot[O2]/d[O2] + J[166] += -2 * dqdci; // dwdot[O]/d[O2] + // d()/d[O] + dqdci = +k_f * 2.000000 * sc[6]; + J[197] += dqdci; // dwdot[O2]/d[O] + J[198] += -2 * dqdci; // dwdot[O]/d[O] + // d()/d[H2O] + dqdci = (12 - 1) * q_nocor; + J[229] += dqdci; // dwdot[O2]/d[H2O] + J[230] += -2 * dqdci; // dwdot[O]/d[H2O] + } else { + dqdc[0] = 0.83 * q_nocor; + dqdc[1] = q_nocor; + dqdc[2] = 0.83 * q_nocor; + dqdc[3] = 2.5 * q_nocor; + dqdc[4] = q_nocor; + dqdc[5] = q_nocor - k_r; + dqdc[6] = q_nocor + k_f * 2.000000 * sc[6]; + dqdc[7] = 12 * q_nocor; + dqdc[8] = q_nocor; + dqdc[9] = q_nocor; + dqdc[10] = q_nocor; + dqdc[11] = q_nocor; + dqdc[12] = q_nocor; + dqdc[13] = q_nocor; + dqdc[14] = q_nocor; + dqdc[15] = q_nocor; + dqdc[16] = q_nocor; + dqdc[17] = q_nocor; + dqdc[18] = q_nocor; + dqdc[19] = q_nocor; + dqdc[20] = q_nocor; + dqdc[21] = q_nocor; + dqdc[22] = q_nocor; + dqdc[23] = q_nocor; + dqdc[24] = q_nocor; + dqdc[25] = q_nocor; + dqdc[26] = q_nocor; + dqdc[27] = q_nocor; + dqdc[28] = q_nocor; + dqdc[29] = q_nocor; + dqdc[30] = q_nocor; + for (int k = 0; k < 31; k++) { + J[32 * k + 5] += dqdc[k]; + J[32 * k + 6] += -2 * dqdc[k]; + } + } + J[997] += dqdT; // dwdot[O2]/dT + J[998] += -2 * dqdT; // dwdot[O]/dT + + // reaction 5: H + OH + M <=> H2O + M + // a third-body and non-pressure-fall-off reaction + // 3-body correction factor + alpha = + mixture + (0.38 - 1) * sc[0] + (0.73 - 1) * sc[3] + (3.65 - 1) * sc[7]; + // forward + phi_f = sc[4] * sc[8]; + k_f = 35000000000 * exp(-2 * logT); + dlnkfdT = -2 * invT; + // reverse + phi_r = sc[7]; + Kc = refCinv * exp(g_RT[4] - g_RT[7] + g_RT[8]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[8]) + (h_RT[7]) + 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + q = alpha * q_nocor; + dqdT = alpha * (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] -= q; // H + wdot[7] += q; // H2O + wdot[8] -= q; // OH + // for convenience + k_f *= alpha; + k_r *= alpha; + if (consP == 1) { + // d()/d[AR] + dqdci = (0.38 - 1) * q_nocor; + J[4] -= dqdci; // dwdot[H]/d[AR] + J[7] += dqdci; // dwdot[H2O]/d[AR] + J[8] -= dqdci; // dwdot[OH]/d[AR] + // d()/d[H2] + dqdci = (0.73 - 1) * q_nocor; + J[100] -= dqdci; // dwdot[H]/d[H2] + J[103] += dqdci; // dwdot[H2O]/d[H2] + J[104] -= dqdci; // dwdot[OH]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[8]; + J[132] -= dqdci; // dwdot[H]/d[H] + J[135] += dqdci; // dwdot[H2O]/d[H] + J[136] -= dqdci; // dwdot[OH]/d[H] + // d()/d[H2O] + dqdci = (3.65 - 1) * q_nocor - k_r; + J[228] -= dqdci; // dwdot[H]/d[H2O] + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[4]; + J[260] -= dqdci; // dwdot[H]/d[OH] + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + } else { + dqdc[0] = 0.38 * q_nocor; + dqdc[1] = q_nocor; + dqdc[2] = q_nocor; + dqdc[3] = 0.73 * q_nocor; + dqdc[4] = q_nocor + k_f * sc[8]; + dqdc[5] = q_nocor; + dqdc[6] = q_nocor; + dqdc[7] = 3.65 * q_nocor - k_r; + dqdc[8] = q_nocor + k_f * sc[4]; + dqdc[9] = q_nocor; + dqdc[10] = q_nocor; + dqdc[11] = q_nocor; + dqdc[12] = q_nocor; + dqdc[13] = q_nocor; + dqdc[14] = q_nocor; + dqdc[15] = q_nocor; + dqdc[16] = q_nocor; + dqdc[17] = q_nocor; + dqdc[18] = q_nocor; + dqdc[19] = q_nocor; + dqdc[20] = q_nocor; + dqdc[21] = q_nocor; + dqdc[22] = q_nocor; + dqdc[23] = q_nocor; + dqdc[24] = q_nocor; + dqdc[25] = q_nocor; + dqdc[26] = q_nocor; + dqdc[27] = q_nocor; + dqdc[28] = q_nocor; + dqdc[29] = q_nocor; + dqdc[30] = q_nocor; + for (int k = 0; k < 31; k++) { + J[32 * k + 4] -= dqdc[k]; + J[32 * k + 7] += dqdc[k]; + J[32 * k + 8] -= dqdc[k]; + } + } + J[996] -= dqdT; // dwdot[H]/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + + // reaction 7: H + O + M <=> OH + M + // a third-body and non-pressure-fall-off reaction + // 3-body correction factor + alpha = mixture + (0.75 - 1) * sc[0] + (0.75 - 1) * sc[2] + + (2.5 - 1) * sc[3] + (12 - 1) * sc[7]; + // forward + phi_f = sc[4] * sc[6]; + k_f = 4714000 * exp(-1 * logT); + dlnkfdT = -1 * invT; + // reverse + phi_r = sc[8]; + Kc = refCinv * exp(g_RT[4] + g_RT[6] - g_RT[8]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[6]) + (h_RT[8]) + 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + q = alpha * q_nocor; + dqdT = alpha * (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] -= q; // H + wdot[6] -= q; // O + wdot[8] += q; // OH + // for convenience + k_f *= alpha; + k_r *= alpha; + if (consP == 1) { + // d()/d[AR] + dqdci = (0.75 - 1) * q_nocor; + J[4] -= dqdci; // dwdot[H]/d[AR] + J[6] -= dqdci; // dwdot[O]/d[AR] + J[8] += dqdci; // dwdot[OH]/d[AR] + // d()/d[HE] + dqdci = (0.75 - 1) * q_nocor; + J[68] -= dqdci; // dwdot[H]/d[HE] + J[70] -= dqdci; // dwdot[O]/d[HE] + J[72] += dqdci; // dwdot[OH]/d[HE] + // d()/d[H2] + dqdci = (2.5 - 1) * q_nocor; + J[100] -= dqdci; // dwdot[H]/d[H2] + J[102] -= dqdci; // dwdot[O]/d[H2] + J[104] += dqdci; // dwdot[OH]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[6]; + J[132] -= dqdci; // dwdot[H]/d[H] + J[134] -= dqdci; // dwdot[O]/d[H] + J[136] += dqdci; // dwdot[OH]/d[H] + // d()/d[O] + dqdci = +k_f * sc[4]; + J[196] -= dqdci; // dwdot[H]/d[O] + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + // d()/d[H2O] + dqdci = (12 - 1) * q_nocor; + J[228] -= dqdci; // dwdot[H]/d[H2O] + J[230] -= dqdci; // dwdot[O]/d[H2O] + J[232] += dqdci; // dwdot[OH]/d[H2O] + // d()/d[OH] + dqdci = -k_r; + J[260] -= dqdci; // dwdot[H]/d[OH] + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + } else { + dqdc[0] = 0.75 * q_nocor; + dqdc[1] = q_nocor; + dqdc[2] = 0.75 * q_nocor; + dqdc[3] = 2.5 * q_nocor; + dqdc[4] = q_nocor + k_f * sc[6]; + dqdc[5] = q_nocor; + dqdc[6] = q_nocor + k_f * sc[4]; + dqdc[7] = 12 * q_nocor; + dqdc[8] = q_nocor - k_r; + dqdc[9] = q_nocor; + dqdc[10] = q_nocor; + dqdc[11] = q_nocor; + dqdc[12] = q_nocor; + dqdc[13] = q_nocor; + dqdc[14] = q_nocor; + dqdc[15] = q_nocor; + dqdc[16] = q_nocor; + dqdc[17] = q_nocor; + dqdc[18] = q_nocor; + dqdc[19] = q_nocor; + dqdc[20] = q_nocor; + dqdc[21] = q_nocor; + dqdc[22] = q_nocor; + dqdc[23] = q_nocor; + dqdc[24] = q_nocor; + dqdc[25] = q_nocor; + dqdc[26] = q_nocor; + dqdc[27] = q_nocor; + dqdc[28] = q_nocor; + dqdc[29] = q_nocor; + dqdc[30] = q_nocor; + for (int k = 0; k < 31; k++) { + J[32 * k + 4] -= dqdc[k]; + J[32 * k + 6] -= dqdc[k]; + J[32 * k + 8] += dqdc[k]; + } + } + J[996] -= dqdT; // dwdot[H]/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + + // reaction 22: O + OH + M <=> HO2 + M + // a third-body and non-pressure-fall-off reaction + // 3-body correction factor + alpha = mixture; + // forward + phi_f = sc[6] * sc[8]; + k_f = 10000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[10]; + Kc = refCinv * exp(g_RT[6] + g_RT[8] - g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[8]) + (h_RT[10]) + 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + q = alpha * q_nocor; + dqdT = alpha * (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] -= q; // OH + wdot[10] += q; // HO2 + // for convenience + k_f *= alpha; + k_r *= alpha; + if (consP == 1) { + // d()/d[O] + dqdci = +k_f * sc[8]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] -= dqdci; // dwdot[OH]/d[O] + J[202] += dqdci; // dwdot[HO2]/d[O] + // d()/d[OH] + dqdci = +k_f * sc[6]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[266] += dqdci; // dwdot[HO2]/d[OH] + // d()/d[HO2] + dqdci = -k_r; + J[326] -= dqdci; // dwdot[O]/d[HO2] + J[328] -= dqdci; // dwdot[OH]/d[HO2] + J[330] += dqdci; // dwdot[HO2]/d[HO2] + } else { + dqdc[0] = q_nocor; + dqdc[1] = q_nocor; + dqdc[2] = q_nocor; + dqdc[3] = q_nocor; + dqdc[4] = q_nocor; + dqdc[5] = q_nocor; + dqdc[6] = q_nocor + k_f * sc[8]; + dqdc[7] = q_nocor; + dqdc[8] = q_nocor + k_f * sc[6]; + dqdc[9] = q_nocor; + dqdc[10] = q_nocor - k_r; + dqdc[11] = q_nocor; + dqdc[12] = q_nocor; + dqdc[13] = q_nocor; + dqdc[14] = q_nocor; + dqdc[15] = q_nocor; + dqdc[16] = q_nocor; + dqdc[17] = q_nocor; + dqdc[18] = q_nocor; + dqdc[19] = q_nocor; + dqdc[20] = q_nocor; + dqdc[21] = q_nocor; + dqdc[22] = q_nocor; + dqdc[23] = q_nocor; + dqdc[24] = q_nocor; + dqdc[25] = q_nocor; + dqdc[26] = q_nocor; + dqdc[27] = q_nocor; + dqdc[28] = q_nocor; + dqdc[29] = q_nocor; + dqdc[30] = q_nocor; + for (int k = 0; k < 31; k++) { + J[32 * k + 6] -= dqdc[k]; + J[32 * k + 8] -= dqdc[k]; + J[32 * k + 10] += dqdc[k]; + } + } + J[998] -= dqdT; // dwdot[O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + + // reaction 60: HNOH + M <=> H + HNO + M + // a third-body and non-pressure-fall-off reaction + // 3-body correction factor + alpha = mixture; + // forward + phi_f = sc[21]; + k_f = 2e+18 * exp(-2.84 * logT - (29656.5709825354) * invT); + dlnkfdT = -2.84 * invT + (29656.5709825354) * invT2; + // reverse + phi_r = sc[4] * sc[14]; + Kc = refC * exp(-g_RT[4] - g_RT[14] + g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[21]) + (h_RT[4] + h_RT[14]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + q = alpha * q_nocor; + dqdT = alpha * (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[14] += q; // HNO + wdot[21] -= q; // HNOH + // for convenience + k_f *= alpha; + k_r *= alpha; + if (consP == 1) { + // d()/d[H] + dqdci = -k_r * sc[14]; + J[132] += dqdci; // dwdot[H]/d[H] + J[142] += dqdci; // dwdot[HNO]/d[H] + J[149] -= dqdci; // dwdot[HNOH]/d[H] + // d()/d[HNO] + dqdci = -k_r * sc[4]; + J[452] += dqdci; // dwdot[H]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[469] -= dqdci; // dwdot[HNOH]/d[HNO] + // d()/d[HNOH] + dqdci = +k_f; + J[676] += dqdci; // dwdot[H]/d[HNOH] + J[686] += dqdci; // dwdot[HNO]/d[HNOH] + J[693] -= dqdci; // dwdot[HNOH]/d[HNOH] + } else { + dqdc[0] = q_nocor; + dqdc[1] = q_nocor; + dqdc[2] = q_nocor; + dqdc[3] = q_nocor; + dqdc[4] = q_nocor - k_r * sc[14]; + dqdc[5] = q_nocor; + dqdc[6] = q_nocor; + dqdc[7] = q_nocor; + dqdc[8] = q_nocor; + dqdc[9] = q_nocor; + dqdc[10] = q_nocor; + dqdc[11] = q_nocor; + dqdc[12] = q_nocor; + dqdc[13] = q_nocor; + dqdc[14] = q_nocor - k_r * sc[4]; + dqdc[15] = q_nocor; + dqdc[16] = q_nocor; + dqdc[17] = q_nocor; + dqdc[18] = q_nocor; + dqdc[19] = q_nocor; + dqdc[20] = q_nocor; + dqdc[21] = q_nocor + k_f; + dqdc[22] = q_nocor; + dqdc[23] = q_nocor; + dqdc[24] = q_nocor; + dqdc[25] = q_nocor; + dqdc[26] = q_nocor; + dqdc[27] = q_nocor; + dqdc[28] = q_nocor; + dqdc[29] = q_nocor; + dqdc[30] = q_nocor; + for (int k = 0; k < 31; k++) { + J[32 * k + 4] += dqdc[k]; + J[32 * k + 14] += dqdc[k]; + J[32 * k + 21] -= dqdc[k]; + } + } + J[996] += dqdT; // dwdot[H]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + + // reaction 163: H2NO + M <=> H + HNO + M + // a third-body and non-pressure-fall-off reaction + // 3-body correction factor + alpha = mixture + (10 - 1) * sc[7]; + // forward + phi_f = sc[29]; + k_f = 2.8e+18 * exp(-2.83 * logT - (32696.4525389951) * invT); + dlnkfdT = -2.83 * invT + (32696.4525389951) * invT2; + // reverse + phi_r = sc[4] * sc[14]; + Kc = refC * exp(-g_RT[4] - g_RT[14] + g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[29]) + (h_RT[4] + h_RT[14]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q_nocor = k_f * phi_f - k_r * phi_r; + q = alpha * q_nocor; + dqdT = alpha * (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[14] += q; // HNO + wdot[29] -= q; // H2NO + // for convenience + k_f *= alpha; + k_r *= alpha; + if (consP == 1) { + // d()/d[H] + dqdci = -k_r * sc[14]; + J[132] += dqdci; // dwdot[H]/d[H] + J[142] += dqdci; // dwdot[HNO]/d[H] + J[157] -= dqdci; // dwdot[H2NO]/d[H] + // d()/d[H2O] + dqdci = (10 - 1) * q_nocor; + J[228] += dqdci; // dwdot[H]/d[H2O] + J[238] += dqdci; // dwdot[HNO]/d[H2O] + J[253] -= dqdci; // dwdot[H2NO]/d[H2O] + // d()/d[HNO] + dqdci = -k_r * sc[4]; + J[452] += dqdci; // dwdot[H]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[477] -= dqdci; // dwdot[H2NO]/d[HNO] + // d()/d[H2NO] + dqdci = +k_f; + J[932] += dqdci; // dwdot[H]/d[H2NO] + J[942] += dqdci; // dwdot[HNO]/d[H2NO] + J[957] -= dqdci; // dwdot[H2NO]/d[H2NO] + } else { + dqdc[0] = q_nocor; + dqdc[1] = q_nocor; + dqdc[2] = q_nocor; + dqdc[3] = q_nocor; + dqdc[4] = q_nocor - k_r * sc[14]; + dqdc[5] = q_nocor; + dqdc[6] = q_nocor; + dqdc[7] = 10 * q_nocor; + dqdc[8] = q_nocor; + dqdc[9] = q_nocor; + dqdc[10] = q_nocor; + dqdc[11] = q_nocor; + dqdc[12] = q_nocor; + dqdc[13] = q_nocor; + dqdc[14] = q_nocor - k_r * sc[4]; + dqdc[15] = q_nocor; + dqdc[16] = q_nocor; + dqdc[17] = q_nocor; + dqdc[18] = q_nocor; + dqdc[19] = q_nocor; + dqdc[20] = q_nocor; + dqdc[21] = q_nocor; + dqdc[22] = q_nocor; + dqdc[23] = q_nocor; + dqdc[24] = q_nocor; + dqdc[25] = q_nocor; + dqdc[26] = q_nocor; + dqdc[27] = q_nocor; + dqdc[28] = q_nocor; + dqdc[29] = q_nocor + k_f; + dqdc[30] = q_nocor; + for (int k = 0; k < 31; k++) { + J[32 * k + 4] += dqdc[k]; + J[32 * k + 14] += dqdc[k]; + J[32 * k + 29] -= dqdc[k]; + } + } + J[996] += dqdT; // dwdot[H]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1021] -= dqdT; // dwdot[H2NO]/dT + + // reaction 177: NO3 + NO2 => NO + O2 + NO2 + // a third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[13] * sc[25]; + k_f = 57300 * exp(-(1409.00666425321) * invT); + dlnkfdT = (1409.00666425321) * invT2; + // rate of progress + q = k_f * phi_f; + dqdT = dlnkfdT * k_f * phi_f; + // update wdot + wdot[5] += q; // O2 + wdot[11] += q; // NO + wdot[25] -= q; // NO3 + // d()/d[NO2] + dqdci = +k_f * sc[25]; + J[421] += dqdci; // dwdot[O2]/d[NO2] + J[427] += dqdci; // dwdot[NO]/d[NO2] + J[441] -= dqdci; // dwdot[NO3]/d[NO2] + // d()/d[NO3] + dqdci = +k_f * sc[13]; + J[805] += dqdci; // dwdot[O2]/d[NO3] + J[811] += dqdci; // dwdot[NO]/d[NO3] + J[825] -= dqdci; // dwdot[NO3]/d[NO3] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1017] -= dqdT; // dwdot[NO3]/dT + + // reaction 1: H2 + O <=> H + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[3] * sc[6]; + k_f = 0.0508 * exp(2.67 * logT - (3166.2392612433) * invT); + dlnkfdT = 2.67 * invT + (3166.2392612433) * invT2; + // reverse + phi_r = sc[4] * sc[8]; + Kc = exp(g_RT[3] - g_RT[4] + g_RT[6] - g_RT[8]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[3] + h_RT[6]) + (h_RT[4] + h_RT[8])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] -= q; // H2 + wdot[4] += q; // H + wdot[6] -= q; // O + wdot[8] += q; // OH + // d()/d[H2] + dqdci = +k_f * sc[6]; + J[99] -= dqdci; // dwdot[H2]/d[H2] + J[100] += dqdci; // dwdot[H]/d[H2] + J[102] -= dqdci; // dwdot[O]/d[H2] + J[104] += dqdci; // dwdot[OH]/d[H2] + // d()/d[H] + dqdci = -k_r * sc[8]; + J[131] -= dqdci; // dwdot[H2]/d[H] + J[132] += dqdci; // dwdot[H]/d[H] + J[134] -= dqdci; // dwdot[O]/d[H] + J[136] += dqdci; // dwdot[OH]/d[H] + // d()/d[O] + dqdci = +k_f * sc[3]; + J[195] -= dqdci; // dwdot[H2]/d[O] + J[196] += dqdci; // dwdot[H]/d[O] + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[4]; + J[259] -= dqdci; // dwdot[H2]/d[OH] + J[260] += dqdci; // dwdot[H]/d[OH] + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + // d()/dT + J[995] -= dqdT; // dwdot[H2]/dT + J[996] += dqdT; // dwdot[H]/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + + // reaction 2: H2 + OH <=> H + H2O + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[3] * sc[8]; + k_f = 43800000 * exp(-(3517.48449397499) * invT); + dlnkfdT = (3517.48449397499) * invT2; + // reverse + phi_r = sc[4] * sc[7]; + Kc = exp(g_RT[3] - g_RT[4] - g_RT[7] + g_RT[8]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[3] + h_RT[8]) + (h_RT[4] + h_RT[7])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] -= q; // H2 + wdot[4] += q; // H + wdot[7] += q; // H2O + wdot[8] -= q; // OH + // d()/d[H2] + dqdci = +k_f * sc[8]; + J[99] -= dqdci; // dwdot[H2]/d[H2] + J[100] += dqdci; // dwdot[H]/d[H2] + J[103] += dqdci; // dwdot[H2O]/d[H2] + J[104] -= dqdci; // dwdot[OH]/d[H2] + // d()/d[H] + dqdci = -k_r * sc[7]; + J[131] -= dqdci; // dwdot[H2]/d[H] + J[132] += dqdci; // dwdot[H]/d[H] + J[135] += dqdci; // dwdot[H2O]/d[H] + J[136] -= dqdci; // dwdot[OH]/d[H] + // d()/d[H2O] + dqdci = -k_r * sc[4]; + J[227] -= dqdci; // dwdot[H2]/d[H2O] + J[228] += dqdci; // dwdot[H]/d[H2O] + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[3]; + J[259] -= dqdci; // dwdot[H2]/d[OH] + J[260] += dqdci; // dwdot[H]/d[OH] + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + // d()/dT + J[995] -= dqdT; // dwdot[H2]/dT + J[996] += dqdT; // dwdot[H]/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + + // reaction 4: H + O2 <=> O + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[5]; + k_f = 114000000 * exp(-(7692.16995349094) * invT); + dlnkfdT = (7692.16995349094) * invT2; + // reverse + phi_r = sc[6] * sc[8]; + Kc = exp(g_RT[4] + g_RT[5] - g_RT[6] - g_RT[8]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[5]) + (h_RT[6] + h_RT[8])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] -= q; // H + wdot[5] -= q; // O2 + wdot[6] += q; // O + wdot[8] += q; // OH + // d()/d[H] + dqdci = +k_f * sc[5]; + J[132] -= dqdci; // dwdot[H]/d[H] + J[133] -= dqdci; // dwdot[O2]/d[H] + J[134] += dqdci; // dwdot[O]/d[H] + J[136] += dqdci; // dwdot[OH]/d[H] + // d()/d[O2] + dqdci = +k_f * sc[4]; + J[164] -= dqdci; // dwdot[H]/d[O2] + J[165] -= dqdci; // dwdot[O2]/d[O2] + J[166] += dqdci; // dwdot[O]/d[O2] + J[168] += dqdci; // dwdot[OH]/d[O2] + // d()/d[O] + dqdci = -k_r * sc[8]; + J[196] -= dqdci; // dwdot[H]/d[O] + J[197] -= dqdci; // dwdot[O2]/d[O] + J[198] += dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[6]; + J[260] -= dqdci; // dwdot[H]/d[OH] + J[261] -= dqdci; // dwdot[O2]/d[OH] + J[262] += dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + // d()/dT + J[996] -= dqdT; // dwdot[H]/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[998] += dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + + // reaction 6: H2O + O <=> 2 OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[7]; + k_f = 67 * exp(1.704 * logT - (7541.60752708217) * invT); + dlnkfdT = 1.704 * invT + (7541.60752708217) * invT2; + // reverse + phi_r = (sc[8] * sc[8]); + Kc = exp(g_RT[6] + g_RT[7] - 2.000000 * g_RT[8]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[7]) + (2.000000 * h_RT[8])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[7] -= q; // H2O + wdot[8] += 2 * q; // OH + // d()/d[O] + dqdci = +k_f * sc[7]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[199] -= dqdci; // dwdot[H2O]/d[O] + J[200] += 2 * dqdci; // dwdot[OH]/d[O] + // d()/d[H2O] + dqdci = +k_f * sc[6]; + J[230] -= dqdci; // dwdot[O]/d[H2O] + J[231] -= dqdci; // dwdot[H2O]/d[H2O] + J[232] += 2 * dqdci; // dwdot[OH]/d[H2O] + // d()/d[OH] + dqdci = -k_r * 2.000000 * sc[8]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[263] -= dqdci; // dwdot[H2O]/d[OH] + J[264] += 2 * dqdci; // dwdot[OH]/d[OH] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[999] -= dqdT; // dwdot[H2O]/dT + J[1000] += 2 * dqdT; // dwdot[OH]/dT + + // reaction 9: H + H2O2 <=> H2O + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[9]; + k_f = 24100000 * exp(-(1997.77016324474) * invT); + dlnkfdT = (1997.77016324474) * invT2; + // reverse + phi_r = sc[7] * sc[8]; + Kc = exp(g_RT[4] - g_RT[7] - g_RT[8] + g_RT[9]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[9]) + (h_RT[7] + h_RT[8])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] -= q; // H + wdot[7] += q; // H2O + wdot[8] += q; // OH + wdot[9] -= q; // H2O2 + // d()/d[H] + dqdci = +k_f * sc[9]; + J[132] -= dqdci; // dwdot[H]/d[H] + J[135] += dqdci; // dwdot[H2O]/d[H] + J[136] += dqdci; // dwdot[OH]/d[H] + J[137] -= dqdci; // dwdot[H2O2]/d[H] + // d()/d[H2O] + dqdci = -k_r * sc[8]; + J[228] -= dqdci; // dwdot[H]/d[H2O] + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] += dqdci; // dwdot[OH]/d[H2O] + J[233] -= dqdci; // dwdot[H2O2]/d[H2O] + // d()/d[OH] + dqdci = -k_r * sc[7]; + J[260] -= dqdci; // dwdot[H]/d[OH] + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[265] -= dqdci; // dwdot[H2O2]/d[OH] + // d()/d[H2O2] + dqdci = +k_f * sc[4]; + J[292] -= dqdci; // dwdot[H]/d[H2O2] + J[295] += dqdci; // dwdot[H2O]/d[H2O2] + J[296] += dqdci; // dwdot[OH]/d[H2O2] + J[297] -= dqdci; // dwdot[H2O2]/d[H2O2] + // d()/dT + J[996] -= dqdT; // dwdot[H]/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1001] -= dqdT; // dwdot[H2O2]/dT + + // reaction 10: H + H2O2 <=> H2 + HO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[9]; + k_f = 21500 * exp(1 * logT - (3019.29999482832) * invT); + dlnkfdT = 1 * invT + (3019.29999482832) * invT2; + // reverse + phi_r = sc[3] * sc[10]; + Kc = exp(-g_RT[3] + g_RT[4] + g_RT[9] - g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[9]) + (h_RT[3] + h_RT[10])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[9] -= q; // H2O2 + wdot[10] += q; // HO2 + // d()/d[H2] + dqdci = -k_r * sc[10]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[105] -= dqdci; // dwdot[H2O2]/d[H2] + J[106] += dqdci; // dwdot[HO2]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[9]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[137] -= dqdci; // dwdot[H2O2]/d[H] + J[138] += dqdci; // dwdot[HO2]/d[H] + // d()/d[H2O2] + dqdci = +k_f * sc[4]; + J[291] += dqdci; // dwdot[H2]/d[H2O2] + J[292] -= dqdci; // dwdot[H]/d[H2O2] + J[297] -= dqdci; // dwdot[H2O2]/d[H2O2] + J[298] += dqdci; // dwdot[HO2]/d[H2O2] + // d()/d[HO2] + dqdci = -k_r * sc[3]; + J[323] += dqdci; // dwdot[H2]/d[HO2] + J[324] -= dqdci; // dwdot[H]/d[HO2] + J[329] -= dqdci; // dwdot[H2O2]/d[HO2] + J[330] += dqdci; // dwdot[HO2]/d[HO2] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1001] -= dqdT; // dwdot[H2O2]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + + // reaction 11: H2O2 + O <=> HO2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[9]; + k_f = 9.55 * exp(2 * logT - (1997.77016324474) * invT); + dlnkfdT = 2 * invT + (1997.77016324474) * invT2; + // reverse + phi_r = sc[8] * sc[10]; + Kc = exp(g_RT[6] - g_RT[8] + g_RT[9] - g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[9]) + (h_RT[8] + h_RT[10])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[9] -= q; // H2O2 + wdot[10] += q; // HO2 + // d()/d[O] + dqdci = +k_f * sc[9]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[201] -= dqdci; // dwdot[H2O2]/d[O] + J[202] += dqdci; // dwdot[HO2]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[10]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[265] -= dqdci; // dwdot[H2O2]/d[OH] + J[266] += dqdci; // dwdot[HO2]/d[OH] + // d()/d[H2O2] + dqdci = +k_f * sc[6]; + J[294] -= dqdci; // dwdot[O]/d[H2O2] + J[296] += dqdci; // dwdot[OH]/d[H2O2] + J[297] -= dqdci; // dwdot[H2O2]/d[H2O2] + J[298] += dqdci; // dwdot[HO2]/d[H2O2] + // d()/d[HO2] + dqdci = -k_r * sc[8]; + J[326] -= dqdci; // dwdot[O]/d[HO2] + J[328] += dqdci; // dwdot[OH]/d[HO2] + J[329] -= dqdci; // dwdot[H2O2]/d[HO2] + J[330] += dqdci; // dwdot[HO2]/d[HO2] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1001] -= dqdT; // dwdot[H2O2]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + + // reaction 12: H2O2 + OH <=> H2O + HO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[9]; + k_f = 1740000 * exp(-(160.022899725901) * invT); + dlnkfdT = (160.022899725901) * invT2; + // reverse + phi_r = sc[7] * sc[10]; + Kc = exp(-g_RT[7] + g_RT[8] + g_RT[9] - g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[9]) + (h_RT[7] + h_RT[10])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[9] -= q; // H2O2 + wdot[10] += q; // HO2 + // d()/d[H2O] + dqdci = -k_r * sc[10]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[233] -= dqdci; // dwdot[H2O2]/d[H2O] + J[234] += dqdci; // dwdot[HO2]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[9]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[265] -= dqdci; // dwdot[H2O2]/d[OH] + J[266] += dqdci; // dwdot[HO2]/d[OH] + // d()/d[H2O2] + dqdci = +k_f * sc[8]; + J[295] += dqdci; // dwdot[H2O]/d[H2O2] + J[296] -= dqdci; // dwdot[OH]/d[H2O2] + J[297] -= dqdci; // dwdot[H2O2]/d[H2O2] + J[298] += dqdci; // dwdot[HO2]/d[H2O2] + // d()/d[HO2] + dqdci = -k_r * sc[7]; + J[327] += dqdci; // dwdot[H2O]/d[HO2] + J[328] -= dqdci; // dwdot[OH]/d[HO2] + J[329] -= dqdci; // dwdot[H2O2]/d[HO2] + J[330] += dqdci; // dwdot[HO2]/d[HO2] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1001] -= dqdT; // dwdot[H2O2]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + + // reaction 13: H2O2 + OH <=> H2O + HO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[9]; + k_f = 75900000 * exp(-(3657.88194373451) * invT); + dlnkfdT = (3657.88194373451) * invT2; + // reverse + phi_r = sc[7] * sc[10]; + Kc = exp(-g_RT[7] + g_RT[8] + g_RT[9] - g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[9]) + (h_RT[7] + h_RT[10])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[9] -= q; // H2O2 + wdot[10] += q; // HO2 + // d()/d[H2O] + dqdci = -k_r * sc[10]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[233] -= dqdci; // dwdot[H2O2]/d[H2O] + J[234] += dqdci; // dwdot[HO2]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[9]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[265] -= dqdci; // dwdot[H2O2]/d[OH] + J[266] += dqdci; // dwdot[HO2]/d[OH] + // d()/d[H2O2] + dqdci = +k_f * sc[8]; + J[295] += dqdci; // dwdot[H2O]/d[H2O2] + J[296] -= dqdci; // dwdot[OH]/d[H2O2] + J[297] -= dqdci; // dwdot[H2O2]/d[H2O2] + J[298] += dqdci; // dwdot[HO2]/d[H2O2] + // d()/d[HO2] + dqdci = -k_r * sc[7]; + J[327] += dqdci; // dwdot[H2O]/d[HO2] + J[328] -= dqdci; // dwdot[OH]/d[HO2] + J[329] -= dqdci; // dwdot[H2O2]/d[HO2] + J[330] += dqdci; // dwdot[HO2]/d[HO2] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1001] -= dqdT; // dwdot[H2O2]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + + // reaction 14: H + HO2 <=> 2 OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[10]; + k_f = 70790000 * exp(-(148.448916412392) * invT); + dlnkfdT = (148.448916412392) * invT2; + // reverse + phi_r = (sc[8] * sc[8]); + Kc = exp(g_RT[4] - 2.000000 * g_RT[8] + g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[10]) + (2.000000 * h_RT[8])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] -= q; // H + wdot[8] += 2 * q; // OH + wdot[10] -= q; // HO2 + // d()/d[H] + dqdci = +k_f * sc[10]; + J[132] -= dqdci; // dwdot[H]/d[H] + J[136] += 2 * dqdci; // dwdot[OH]/d[H] + J[138] -= dqdci; // dwdot[HO2]/d[H] + // d()/d[OH] + dqdci = -k_r * 2.000000 * sc[8]; + J[260] -= dqdci; // dwdot[H]/d[OH] + J[264] += 2 * dqdci; // dwdot[OH]/d[OH] + J[266] -= dqdci; // dwdot[HO2]/d[OH] + // d()/d[HO2] + dqdci = +k_f * sc[4]; + J[324] -= dqdci; // dwdot[H]/d[HO2] + J[328] += 2 * dqdci; // dwdot[OH]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + // d()/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1000] += 2 * dqdT; // dwdot[OH]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + + // reaction 15: H + HO2 <=> H2 + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[10]; + k_f = 11402 * exp(1.0827 * logT - (278.671325189338) * invT); + dlnkfdT = 1.0827 * invT + (278.671325189338) * invT2; + // reverse + phi_r = sc[3] * sc[5]; + Kc = exp(-g_RT[3] + g_RT[4] - g_RT[5] + g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[10]) + (h_RT[3] + h_RT[5])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[5] += q; // O2 + wdot[10] -= q; // HO2 + // d()/d[H2] + dqdci = -k_r * sc[5]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[101] += dqdci; // dwdot[O2]/d[H2] + J[106] -= dqdci; // dwdot[HO2]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[10]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[133] += dqdci; // dwdot[O2]/d[H] + J[138] -= dqdci; // dwdot[HO2]/d[H] + // d()/d[O2] + dqdci = -k_r * sc[3]; + J[163] += dqdci; // dwdot[H2]/d[O2] + J[164] -= dqdci; // dwdot[H]/d[O2] + J[165] += dqdci; // dwdot[O2]/d[O2] + J[170] -= dqdci; // dwdot[HO2]/d[O2] + // d()/d[HO2] + dqdci = +k_f * sc[4]; + J[323] += dqdci; // dwdot[H2]/d[HO2] + J[324] -= dqdci; // dwdot[H]/d[HO2] + J[325] += dqdci; // dwdot[O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[997] += dqdT; // dwdot[O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + + // reaction 16: HO2 + O <=> O2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[10]; + k_f = 32500000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[5] * sc[8]; + Kc = exp(-g_RT[5] + g_RT[6] - g_RT[8] + g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[10]) + (h_RT[5] + h_RT[8])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[10] -= q; // HO2 + // d()/d[O2] + dqdci = -k_r * sc[8]; + J[165] += dqdci; // dwdot[O2]/d[O2] + J[166] -= dqdci; // dwdot[O]/d[O2] + J[168] += dqdci; // dwdot[OH]/d[O2] + J[170] -= dqdci; // dwdot[HO2]/d[O2] + // d()/d[O] + dqdci = +k_f * sc[10]; + J[197] += dqdci; // dwdot[O2]/d[O] + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[202] -= dqdci; // dwdot[HO2]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[5]; + J[261] += dqdci; // dwdot[O2]/d[OH] + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[266] -= dqdci; // dwdot[HO2]/d[OH] + // d()/d[HO2] + dqdci = +k_f * sc[6]; + J[325] += dqdci; // dwdot[O2]/d[HO2] + J[326] -= dqdci; // dwdot[O]/d[HO2] + J[328] += dqdci; // dwdot[OH]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + + // reaction 17: HO2 + OH <=> H2O + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[10]; + k_f = 7000000 * exp(-(-549.995687057926) * invT); + dlnkfdT = (-549.995687057926) * invT2; + // reverse + phi_r = sc[5] * sc[7]; + Kc = exp(-g_RT[5] - g_RT[7] + g_RT[8] + g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[10]) + (h_RT[5] + h_RT[7])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[10] -= q; // HO2 + // d()/d[O2] + dqdci = -k_r * sc[7]; + J[165] += dqdci; // dwdot[O2]/d[O2] + J[167] += dqdci; // dwdot[H2O]/d[O2] + J[168] -= dqdci; // dwdot[OH]/d[O2] + J[170] -= dqdci; // dwdot[HO2]/d[O2] + // d()/d[H2O] + dqdci = -k_r * sc[5]; + J[229] += dqdci; // dwdot[O2]/d[H2O] + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[234] -= dqdci; // dwdot[HO2]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[10]; + J[261] += dqdci; // dwdot[O2]/d[OH] + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[266] -= dqdci; // dwdot[HO2]/d[OH] + // d()/d[HO2] + dqdci = +k_f * sc[8]; + J[325] += dqdci; // dwdot[O2]/d[HO2] + J[327] += dqdci; // dwdot[H2O]/d[HO2] + J[328] -= dqdci; // dwdot[OH]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + + // reaction 18: HO2 + OH <=> H2O + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[10]; + k_f = 450000000 * exp(-(5499.95687057926) * invT); + dlnkfdT = (5499.95687057926) * invT2; + // reverse + phi_r = sc[5] * sc[7]; + Kc = exp(-g_RT[5] - g_RT[7] + g_RT[8] + g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[10]) + (h_RT[5] + h_RT[7])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[10] -= q; // HO2 + // d()/d[O2] + dqdci = -k_r * sc[7]; + J[165] += dqdci; // dwdot[O2]/d[O2] + J[167] += dqdci; // dwdot[H2O]/d[O2] + J[168] -= dqdci; // dwdot[OH]/d[O2] + J[170] -= dqdci; // dwdot[HO2]/d[O2] + // d()/d[H2O] + dqdci = -k_r * sc[5]; + J[229] += dqdci; // dwdot[O2]/d[H2O] + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[234] -= dqdci; // dwdot[HO2]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[10]; + J[261] += dqdci; // dwdot[O2]/d[OH] + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[266] -= dqdci; // dwdot[HO2]/d[OH] + // d()/d[HO2] + dqdci = +k_f * sc[8]; + J[325] += dqdci; // dwdot[O2]/d[HO2] + J[327] += dqdci; // dwdot[H2O]/d[HO2] + J[328] -= dqdci; // dwdot[OH]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + + // reaction 19: 2 HO2 <=> H2O2 + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = (sc[10] * sc[10]); + k_f = 100000000 * exp(-(5555.95633080001) * invT); + dlnkfdT = (5555.95633080001) * invT2; + // reverse + phi_r = sc[5] * sc[9]; + Kc = exp(-g_RT[5] - g_RT[9] + 2.000000 * g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(2.000000 * h_RT[10]) + (h_RT[5] + h_RT[9])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[9] += q; // H2O2 + wdot[10] -= 2 * q; // HO2 + // d()/d[O2] + dqdci = -k_r * sc[9]; + J[165] += dqdci; // dwdot[O2]/d[O2] + J[169] += dqdci; // dwdot[H2O2]/d[O2] + J[170] += -2 * dqdci; // dwdot[HO2]/d[O2] + // d()/d[H2O2] + dqdci = -k_r * sc[5]; + J[293] += dqdci; // dwdot[O2]/d[H2O2] + J[297] += dqdci; // dwdot[H2O2]/d[H2O2] + J[298] += -2 * dqdci; // dwdot[HO2]/d[H2O2] + // d()/d[HO2] + dqdci = +k_f * 2.000000 * sc[10]; + J[325] += dqdci; // dwdot[O2]/d[HO2] + J[329] += dqdci; // dwdot[H2O2]/d[HO2] + J[330] += -2 * dqdci; // dwdot[HO2]/d[HO2] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[1001] += dqdT; // dwdot[H2O2]/dT + J[1002] += -2 * dqdT; // dwdot[HO2]/dT + + // reaction 20: 2 HO2 <=> H2O2 + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = (sc[10] * sc[10]); + k_f = 190000 * exp(-(-708.994440225581) * invT); + dlnkfdT = (-708.994440225581) * invT2; + // reverse + phi_r = sc[5] * sc[9]; + Kc = exp(-g_RT[5] - g_RT[9] + 2.000000 * g_RT[10]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(2.000000 * h_RT[10]) + (h_RT[5] + h_RT[9])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[9] += q; // H2O2 + wdot[10] -= 2 * q; // HO2 + // d()/d[O2] + dqdci = -k_r * sc[9]; + J[165] += dqdci; // dwdot[O2]/d[O2] + J[169] += dqdci; // dwdot[H2O2]/d[O2] + J[170] += -2 * dqdci; // dwdot[HO2]/d[O2] + // d()/d[H2O2] + dqdci = -k_r * sc[5]; + J[293] += dqdci; // dwdot[O2]/d[H2O2] + J[297] += dqdci; // dwdot[H2O2]/d[H2O2] + J[298] += -2 * dqdci; // dwdot[HO2]/d[H2O2] + // d()/d[HO2] + dqdci = +k_f * 2.000000 * sc[10]; + J[325] += dqdci; // dwdot[O2]/d[HO2] + J[329] += dqdci; // dwdot[H2O2]/d[HO2] + J[330] += -2 * dqdci; // dwdot[HO2]/d[HO2] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[1001] += dqdT; // dwdot[H2O2]/dT + J[1002] += -2 * dqdT; // dwdot[HO2]/dT + + // reaction 23: NH3 <=> H + NH2 + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[22]; + k_f = 3.4656307097861e+30 * + exp(-5.22452592834206 * logT - (55938.3595884331) * invT); + dlnkfdT = -5.22452592834206 * invT + (55938.3595884331) * invT2; + // reverse + phi_r = sc[4] * sc[28]; + Kc = refC * exp(-g_RT[4] + g_RT[22] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[22]) + (h_RT[4] + h_RT[28]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[22] -= q; // NH3 + wdot[28] += q; // NH2 + // d()/d[H] + dqdci = -k_r * sc[28]; + J[132] += dqdci; // dwdot[H]/d[H] + J[150] -= dqdci; // dwdot[NH3]/d[H] + J[156] += dqdci; // dwdot[NH2]/d[H] + // d()/d[NH3] + dqdci = +k_f; + J[708] += dqdci; // dwdot[H]/d[NH3] + J[726] -= dqdci; // dwdot[NH3]/d[NH3] + J[732] += dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NH2] + dqdci = -k_r * sc[4]; + J[900] += dqdci; // dwdot[H]/d[NH2] + J[918] -= dqdci; // dwdot[NH3]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1014] -= dqdT; // dwdot[NH3]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 24: H + NH2 <=> H2 + NH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[28]; + k_f = 40000000 * exp(-(1836.74083018723) * invT); + dlnkfdT = (1836.74083018723) * invT2; + // reverse + phi_r = sc[3] * sc[26]; + Kc = exp(-g_RT[3] + g_RT[4] - g_RT[26] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[28]) + (h_RT[3] + h_RT[26])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[26] += q; // NH + wdot[28] -= q; // NH2 + // d()/d[H2] + dqdci = -k_r * sc[26]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[122] += dqdci; // dwdot[NH]/d[H2] + J[124] -= dqdci; // dwdot[NH2]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[28]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[154] += dqdci; // dwdot[NH]/d[H] + J[156] -= dqdci; // dwdot[NH2]/d[H] + // d()/d[NH] + dqdci = -k_r * sc[3]; + J[835] += dqdci; // dwdot[H2]/d[NH] + J[836] -= dqdci; // dwdot[H]/d[NH] + J[858] += dqdci; // dwdot[NH]/d[NH] + J[860] -= dqdci; // dwdot[NH2]/d[NH] + // d()/d[NH2] + dqdci = +k_f * sc[4]; + J[899] += dqdci; // dwdot[H2]/d[NH2] + J[900] -= dqdci; // dwdot[H]/d[NH2] + J[922] += dqdci; // dwdot[NH]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1018] += dqdT; // dwdot[NH]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 25: H + NH3 <=> H2 + NH2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[22]; + k_f = 0.01963 * exp(2.854 * logT - (4287.50663598937) * invT); + dlnkfdT = 2.854 * invT + (4287.50663598937) * invT2; + // reverse + phi_r = sc[3] * sc[28]; + Kc = exp(-g_RT[3] + g_RT[4] + g_RT[22] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[22]) + (h_RT[3] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[22] -= q; // NH3 + wdot[28] += q; // NH2 + // d()/d[H2] + dqdci = -k_r * sc[28]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[118] -= dqdci; // dwdot[NH3]/d[H2] + J[124] += dqdci; // dwdot[NH2]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[22]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[150] -= dqdci; // dwdot[NH3]/d[H] + J[156] += dqdci; // dwdot[NH2]/d[H] + // d()/d[NH3] + dqdci = +k_f * sc[4]; + J[707] += dqdci; // dwdot[H2]/d[NH3] + J[708] -= dqdci; // dwdot[H]/d[NH3] + J[726] -= dqdci; // dwdot[NH3]/d[NH3] + J[732] += dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NH2] + dqdci = -k_r * sc[3]; + J[899] += dqdci; // dwdot[H2]/d[NH2] + J[900] -= dqdci; // dwdot[H]/d[NH2] + J[918] -= dqdci; // dwdot[NH3]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1014] -= dqdT; // dwdot[NH3]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 26: NH3 + OH <=> H2O + NH2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[22]; + k_f = 0.1559 * exp(2.372 * logT - (59.8324615641812) * invT); + dlnkfdT = 2.372 * invT + (59.8324615641812) * invT2; + // reverse + phi_r = sc[7] * sc[28]; + Kc = exp(-g_RT[7] + g_RT[8] + g_RT[22] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[22]) + (h_RT[7] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[22] -= q; // NH3 + wdot[28] += q; // NH2 + // d()/d[H2O] + dqdci = -k_r * sc[28]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[246] -= dqdci; // dwdot[NH3]/d[H2O] + J[252] += dqdci; // dwdot[NH2]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[22]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[278] -= dqdci; // dwdot[NH3]/d[OH] + J[284] += dqdci; // dwdot[NH2]/d[OH] + // d()/d[NH3] + dqdci = +k_f * sc[8]; + J[711] += dqdci; // dwdot[H2O]/d[NH3] + J[712] -= dqdci; // dwdot[OH]/d[NH3] + J[726] -= dqdci; // dwdot[NH3]/d[NH3] + J[732] += dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NH2] + dqdci = -k_r * sc[7]; + J[903] += dqdci; // dwdot[H2O]/d[NH2] + J[904] -= dqdci; // dwdot[OH]/d[NH2] + J[918] -= dqdci; // dwdot[NH3]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1014] -= dqdT; // dwdot[NH3]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 27: NH3 + O <=> NH2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[22]; + k_f = 0.000443 * exp(3.18 * logT - (3391.63000585723) * invT); + dlnkfdT = 3.18 * invT + (3391.63000585723) * invT2; + // reverse + phi_r = sc[8] * sc[28]; + Kc = exp(g_RT[6] - g_RT[8] + g_RT[22] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[22]) + (h_RT[8] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[22] -= q; // NH3 + wdot[28] += q; // NH2 + // d()/d[O] + dqdci = +k_f * sc[22]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[214] -= dqdci; // dwdot[NH3]/d[O] + J[220] += dqdci; // dwdot[NH2]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[28]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[278] -= dqdci; // dwdot[NH3]/d[OH] + J[284] += dqdci; // dwdot[NH2]/d[OH] + // d()/d[NH3] + dqdci = +k_f * sc[6]; + J[710] -= dqdci; // dwdot[O]/d[NH3] + J[712] += dqdci; // dwdot[OH]/d[NH3] + J[726] -= dqdci; // dwdot[NH3]/d[NH3] + J[732] += dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NH2] + dqdci = -k_r * sc[8]; + J[902] -= dqdci; // dwdot[O]/d[NH2] + J[904] += dqdci; // dwdot[OH]/d[NH2] + J[918] -= dqdci; // dwdot[NH3]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1014] -= dqdT; // dwdot[NH3]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 28: HO2 + NH3 <=> H2O2 + NH2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[22]; + k_f = 1.173e-06 * exp(3.839 * logT - (8685.51965178946) * invT); + dlnkfdT = 3.839 * invT + (8685.51965178946) * invT2; + // reverse + phi_r = sc[9] * sc[28]; + Kc = exp(-g_RT[9] + g_RT[10] + g_RT[22] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[22]) + (h_RT[9] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[9] += q; // H2O2 + wdot[10] -= q; // HO2 + wdot[22] -= q; // NH3 + wdot[28] += q; // NH2 + // d()/d[H2O2] + dqdci = -k_r * sc[28]; + J[297] += dqdci; // dwdot[H2O2]/d[H2O2] + J[298] -= dqdci; // dwdot[HO2]/d[H2O2] + J[310] -= dqdci; // dwdot[NH3]/d[H2O2] + J[316] += dqdci; // dwdot[NH2]/d[H2O2] + // d()/d[HO2] + dqdci = +k_f * sc[22]; + J[329] += dqdci; // dwdot[H2O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[342] -= dqdci; // dwdot[NH3]/d[HO2] + J[348] += dqdci; // dwdot[NH2]/d[HO2] + // d()/d[NH3] + dqdci = +k_f * sc[10]; + J[713] += dqdci; // dwdot[H2O2]/d[NH3] + J[714] -= dqdci; // dwdot[HO2]/d[NH3] + J[726] -= dqdci; // dwdot[NH3]/d[NH3] + J[732] += dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NH2] + dqdci = -k_r * sc[9]; + J[905] += dqdci; // dwdot[H2O2]/d[NH2] + J[906] -= dqdci; // dwdot[HO2]/d[NH2] + J[918] -= dqdci; // dwdot[NH3]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1001] += dqdT; // dwdot[H2O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1014] -= dqdT; // dwdot[NH3]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 29: NH3 + O2 <=> HO2 + NH2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[5] * sc[22]; + k_f = 14150 * exp(1.285 * logT - (27789.6371523998) * invT); + dlnkfdT = 1.285 * invT + (27789.6371523998) * invT2; + // reverse + phi_r = sc[10] * sc[28]; + Kc = exp(g_RT[5] - g_RT[10] + g_RT[22] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[5] + h_RT[22]) + (h_RT[10] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] -= q; // O2 + wdot[10] += q; // HO2 + wdot[22] -= q; // NH3 + wdot[28] += q; // NH2 + // d()/d[O2] + dqdci = +k_f * sc[22]; + J[165] -= dqdci; // dwdot[O2]/d[O2] + J[170] += dqdci; // dwdot[HO2]/d[O2] + J[182] -= dqdci; // dwdot[NH3]/d[O2] + J[188] += dqdci; // dwdot[NH2]/d[O2] + // d()/d[HO2] + dqdci = -k_r * sc[28]; + J[325] -= dqdci; // dwdot[O2]/d[HO2] + J[330] += dqdci; // dwdot[HO2]/d[HO2] + J[342] -= dqdci; // dwdot[NH3]/d[HO2] + J[348] += dqdci; // dwdot[NH2]/d[HO2] + // d()/d[NH3] + dqdci = +k_f * sc[5]; + J[709] -= dqdci; // dwdot[O2]/d[NH3] + J[714] += dqdci; // dwdot[HO2]/d[NH3] + J[726] -= dqdci; // dwdot[NH3]/d[NH3] + J[732] += dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NH2] + dqdci = -k_r * sc[10]; + J[901] -= dqdci; // dwdot[O2]/d[NH2] + J[906] += dqdci; // dwdot[HO2]/d[NH2] + J[918] -= dqdci; // dwdot[NH3]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + J[1014] -= dqdT; // dwdot[NH3]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 30: NH2 + O <=> H + HNO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[28]; + k_f = 1500000000 * exp(-0.547 * logT - (421.041384278809) * invT); + dlnkfdT = -0.547 * invT + (421.041384278809) * invT2; + // reverse + phi_r = sc[4] * sc[14]; + Kc = exp(-g_RT[4] + g_RT[6] - g_RT[14] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[28]) + (h_RT[4] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[6] -= q; // O + wdot[14] += q; // HNO + wdot[28] -= q; // NH2 + // d()/d[H] + dqdci = -k_r * sc[14]; + J[132] += dqdci; // dwdot[H]/d[H] + J[134] -= dqdci; // dwdot[O]/d[H] + J[142] += dqdci; // dwdot[HNO]/d[H] + J[156] -= dqdci; // dwdot[NH2]/d[H] + // d()/d[O] + dqdci = +k_f * sc[28]; + J[196] += dqdci; // dwdot[H]/d[O] + J[198] -= dqdci; // dwdot[O]/d[O] + J[206] += dqdci; // dwdot[HNO]/d[O] + J[220] -= dqdci; // dwdot[NH2]/d[O] + // d()/d[HNO] + dqdci = -k_r * sc[4]; + J[452] += dqdci; // dwdot[H]/d[HNO] + J[454] -= dqdci; // dwdot[O]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[476] -= dqdci; // dwdot[NH2]/d[HNO] + // d()/d[NH2] + dqdci = +k_f * sc[6]; + J[900] += dqdci; // dwdot[H]/d[NH2] + J[902] -= dqdci; // dwdot[O]/d[NH2] + J[910] += dqdci; // dwdot[HNO]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 31: NH2 + O <=> H + HNO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[28]; + k_f = 77300000 * exp(-0.277 * logT - (325.279252776171) * invT); + dlnkfdT = -0.277 * invT + (325.279252776171) * invT2; + // reverse + phi_r = sc[4] * sc[14]; + Kc = exp(-g_RT[4] + g_RT[6] - g_RT[14] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[28]) + (h_RT[4] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[6] -= q; // O + wdot[14] += q; // HNO + wdot[28] -= q; // NH2 + // d()/d[H] + dqdci = -k_r * sc[14]; + J[132] += dqdci; // dwdot[H]/d[H] + J[134] -= dqdci; // dwdot[O]/d[H] + J[142] += dqdci; // dwdot[HNO]/d[H] + J[156] -= dqdci; // dwdot[NH2]/d[H] + // d()/d[O] + dqdci = +k_f * sc[28]; + J[196] += dqdci; // dwdot[H]/d[O] + J[198] -= dqdci; // dwdot[O]/d[O] + J[206] += dqdci; // dwdot[HNO]/d[O] + J[220] -= dqdci; // dwdot[NH2]/d[O] + // d()/d[HNO] + dqdci = -k_r * sc[4]; + J[452] += dqdci; // dwdot[H]/d[HNO] + J[454] -= dqdci; // dwdot[O]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[476] -= dqdci; // dwdot[NH2]/d[HNO] + // d()/d[NH2] + dqdci = +k_f * sc[6]; + J[900] += dqdci; // dwdot[H]/d[NH2] + J[902] -= dqdci; // dwdot[O]/d[NH2] + J[910] += dqdci; // dwdot[HNO]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 32: NH2 + O <=> NH + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[28]; + k_f = 7000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[8] * sc[26]; + Kc = exp(g_RT[6] - g_RT[8] - g_RT[26] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[28]) + (h_RT[8] + h_RT[26])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[26] += q; // NH + wdot[28] -= q; // NH2 + // d()/d[O] + dqdci = +k_f * sc[28]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[218] += dqdci; // dwdot[NH]/d[O] + J[220] -= dqdci; // dwdot[NH2]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[26]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[282] += dqdci; // dwdot[NH]/d[OH] + J[284] -= dqdci; // dwdot[NH2]/d[OH] + // d()/d[NH] + dqdci = -k_r * sc[8]; + J[838] -= dqdci; // dwdot[O]/d[NH] + J[840] += dqdci; // dwdot[OH]/d[NH] + J[858] += dqdci; // dwdot[NH]/d[NH] + J[860] -= dqdci; // dwdot[NH2]/d[NH] + // d()/d[NH2] + dqdci = +k_f * sc[6]; + J[902] -= dqdci; // dwdot[O]/d[NH2] + J[904] += dqdci; // dwdot[OH]/d[NH2] + J[922] += dqdci; // dwdot[NH]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1018] += dqdT; // dwdot[NH]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 33: NH2 + O <=> NH + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[28]; + k_f = 330 * exp(1.5 * logT - (2554.7303689574) * invT); + dlnkfdT = 1.5 * invT + (2554.7303689574) * invT2; + // reverse + phi_r = sc[8] * sc[26]; + Kc = exp(g_RT[6] - g_RT[8] - g_RT[26] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[28]) + (h_RT[8] + h_RT[26])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[26] += q; // NH + wdot[28] -= q; // NH2 + // d()/d[O] + dqdci = +k_f * sc[28]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[218] += dqdci; // dwdot[NH]/d[O] + J[220] -= dqdci; // dwdot[NH2]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[26]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[282] += dqdci; // dwdot[NH]/d[OH] + J[284] -= dqdci; // dwdot[NH2]/d[OH] + // d()/d[NH] + dqdci = -k_r * sc[8]; + J[838] -= dqdci; // dwdot[O]/d[NH] + J[840] += dqdci; // dwdot[OH]/d[NH] + J[858] += dqdci; // dwdot[NH]/d[NH] + J[860] -= dqdci; // dwdot[NH2]/d[NH] + // d()/d[NH2] + dqdci = +k_f * sc[6]; + J[902] -= dqdci; // dwdot[O]/d[NH2] + J[904] += dqdci; // dwdot[OH]/d[NH2] + J[922] += dqdci; // dwdot[NH]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1018] += dqdT; // dwdot[NH]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 34: NH2 + OH <=> H2O + NH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[28]; + k_f = 9.6 * exp(1.97 * logT - (337.155166089162) * invT); + dlnkfdT = 1.97 * invT + (337.155166089162) * invT2; + // reverse + phi_r = sc[7] * sc[26]; + Kc = exp(-g_RT[7] + g_RT[8] - g_RT[26] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[28]) + (h_RT[7] + h_RT[26])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[26] += q; // NH + wdot[28] -= q; // NH2 + // d()/d[H2O] + dqdci = -k_r * sc[26]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[250] += dqdci; // dwdot[NH]/d[H2O] + J[252] -= dqdci; // dwdot[NH2]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[28]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[282] += dqdci; // dwdot[NH]/d[OH] + J[284] -= dqdci; // dwdot[NH2]/d[OH] + // d()/d[NH] + dqdci = -k_r * sc[7]; + J[839] += dqdci; // dwdot[H2O]/d[NH] + J[840] -= dqdci; // dwdot[OH]/d[NH] + J[858] += dqdci; // dwdot[NH]/d[NH] + J[860] -= dqdci; // dwdot[NH2]/d[NH] + // d()/d[NH2] + dqdci = +k_f * sc[8]; + J[903] += dqdci; // dwdot[H2O]/d[NH2] + J[904] -= dqdci; // dwdot[OH]/d[NH2] + J[922] += dqdci; // dwdot[NH]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1018] += dqdT; // dwdot[NH]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 35: NH2 + O2 <=> HNO + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[5] * sc[28]; + k_f = 2.9e-08 * exp(3.764 * logT - (9150.99506765883) * invT); + dlnkfdT = 3.764 * invT + (9150.99506765883) * invT2; + // reverse + phi_r = sc[8] * sc[14]; + Kc = exp(g_RT[5] - g_RT[8] - g_RT[14] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[5] + h_RT[28]) + (h_RT[8] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] -= q; // O2 + wdot[8] += q; // OH + wdot[14] += q; // HNO + wdot[28] -= q; // NH2 + // d()/d[O2] + dqdci = +k_f * sc[28]; + J[165] -= dqdci; // dwdot[O2]/d[O2] + J[168] += dqdci; // dwdot[OH]/d[O2] + J[174] += dqdci; // dwdot[HNO]/d[O2] + J[188] -= dqdci; // dwdot[NH2]/d[O2] + // d()/d[OH] + dqdci = -k_r * sc[14]; + J[261] -= dqdci; // dwdot[O2]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[270] += dqdci; // dwdot[HNO]/d[OH] + J[284] -= dqdci; // dwdot[NH2]/d[OH] + // d()/d[HNO] + dqdci = -k_r * sc[8]; + J[453] -= dqdci; // dwdot[O2]/d[HNO] + J[456] += dqdci; // dwdot[OH]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[476] -= dqdci; // dwdot[NH2]/d[HNO] + // d()/d[NH2] + dqdci = +k_f * sc[5]; + J[901] -= dqdci; // dwdot[O2]/d[NH2] + J[904] += dqdci; // dwdot[OH]/d[NH2] + J[910] += dqdci; // dwdot[HNO]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 36: NH2 + O2 <=> H2NO + O + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[5] * sc[28]; + k_f = 260000 * exp(0.487 * logT - (14618.4441416271) * invT); + dlnkfdT = 0.487 * invT + (14618.4441416271) * invT2; + // reverse + phi_r = sc[6] * sc[29]; + Kc = exp(g_RT[5] - g_RT[6] + g_RT[28] - g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[5] + h_RT[28]) + (h_RT[6] + h_RT[29])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] -= q; // O2 + wdot[6] += q; // O + wdot[28] -= q; // NH2 + wdot[29] += q; // H2NO + // d()/d[O2] + dqdci = +k_f * sc[28]; + J[165] -= dqdci; // dwdot[O2]/d[O2] + J[166] += dqdci; // dwdot[O]/d[O2] + J[188] -= dqdci; // dwdot[NH2]/d[O2] + J[189] += dqdci; // dwdot[H2NO]/d[O2] + // d()/d[O] + dqdci = -k_r * sc[29]; + J[197] -= dqdci; // dwdot[O2]/d[O] + J[198] += dqdci; // dwdot[O]/d[O] + J[220] -= dqdci; // dwdot[NH2]/d[O] + J[221] += dqdci; // dwdot[H2NO]/d[O] + // d()/d[NH2] + dqdci = +k_f * sc[5]; + J[901] -= dqdci; // dwdot[O2]/d[NH2] + J[902] += dqdci; // dwdot[O]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + J[925] += dqdci; // dwdot[H2NO]/d[NH2] + // d()/d[H2NO] + dqdci = -k_r * sc[6]; + J[933] -= dqdci; // dwdot[O2]/d[H2NO] + J[934] += dqdci; // dwdot[O]/d[H2NO] + J[956] -= dqdci; // dwdot[NH2]/d[H2NO] + J[957] += dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[998] += dqdT; // dwdot[O]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + J[1021] += dqdT; // dwdot[H2NO]/dT + + // reaction 37: HO2 + NH2 <=> H2NO + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[28]; + k_f = 15660000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[8] * sc[29]; + Kc = exp(-g_RT[8] + g_RT[10] + g_RT[28] - g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[28]) + (h_RT[8] + h_RT[29])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[8] += q; // OH + wdot[10] -= q; // HO2 + wdot[28] -= q; // NH2 + wdot[29] += q; // H2NO + // d()/d[OH] + dqdci = -k_r * sc[29]; + J[264] += dqdci; // dwdot[OH]/d[OH] + J[266] -= dqdci; // dwdot[HO2]/d[OH] + J[284] -= dqdci; // dwdot[NH2]/d[OH] + J[285] += dqdci; // dwdot[H2NO]/d[OH] + // d()/d[HO2] + dqdci = +k_f * sc[28]; + J[328] += dqdci; // dwdot[OH]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[348] -= dqdci; // dwdot[NH2]/d[HO2] + J[349] += dqdci; // dwdot[H2NO]/d[HO2] + // d()/d[NH2] + dqdci = +k_f * sc[10]; + J[904] += dqdci; // dwdot[OH]/d[NH2] + J[906] -= dqdci; // dwdot[HO2]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + J[925] += dqdci; // dwdot[H2NO]/d[NH2] + // d()/d[H2NO] + dqdci = -k_r * sc[8]; + J[936] += dqdci; // dwdot[OH]/d[H2NO] + J[938] -= dqdci; // dwdot[HO2]/d[H2NO] + J[956] -= dqdci; // dwdot[NH2]/d[H2NO] + J[957] += dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + J[1021] += dqdT; // dwdot[H2NO]/dT + + // reaction 38: NH + NH2 <=> H + N2H2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[26] * sc[28]; + k_f = 1500000000 * exp(-0.5 * logT); + dlnkfdT = -0.5 * invT; + // reverse + phi_r = sc[4] * sc[18]; + Kc = exp(-g_RT[4] - g_RT[18] + g_RT[26] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[26] + h_RT[28]) + (h_RT[4] + h_RT[18])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[18] += q; // N2H2 + wdot[26] -= q; // NH + wdot[28] -= q; // NH2 + // d()/d[H] + dqdci = -k_r * sc[18]; + J[132] += dqdci; // dwdot[H]/d[H] + J[146] += dqdci; // dwdot[N2H2]/d[H] + J[154] -= dqdci; // dwdot[NH]/d[H] + J[156] -= dqdci; // dwdot[NH2]/d[H] + // d()/d[N2H2] + dqdci = -k_r * sc[4]; + J[580] += dqdci; // dwdot[H]/d[N2H2] + J[594] += dqdci; // dwdot[N2H2]/d[N2H2] + J[602] -= dqdci; // dwdot[NH]/d[N2H2] + J[604] -= dqdci; // dwdot[NH2]/d[N2H2] + // d()/d[NH] + dqdci = +k_f * sc[28]; + J[836] += dqdci; // dwdot[H]/d[NH] + J[850] += dqdci; // dwdot[N2H2]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + J[860] -= dqdci; // dwdot[NH2]/d[NH] + // d()/d[NH2] + dqdci = +k_f * sc[26]; + J[900] += dqdci; // dwdot[H]/d[NH2] + J[914] += dqdci; // dwdot[N2H2]/d[NH2] + J[922] -= dqdci; // dwdot[NH]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1010] += dqdT; // dwdot[N2H2]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 39: NH + NH2 <=> N + NH3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[26] * sc[28]; + k_f = 0.0096 * exp(2.46 * logT - (53.844183241105) * invT); + dlnkfdT = 2.46 * invT + (53.844183241105) * invT2; + // reverse + phi_r = sc[22] * sc[24]; + Kc = exp(-g_RT[22] - g_RT[24] + g_RT[26] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[26] + h_RT[28]) + (h_RT[22] + h_RT[24])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[22] += q; // NH3 + wdot[24] += q; // N + wdot[26] -= q; // NH + wdot[28] -= q; // NH2 + // d()/d[NH3] + dqdci = -k_r * sc[24]; + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[728] += dqdci; // dwdot[N]/d[NH3] + J[730] -= dqdci; // dwdot[NH]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + // d()/d[N] + dqdci = -k_r * sc[22]; + J[790] += dqdci; // dwdot[NH3]/d[N] + J[792] += dqdci; // dwdot[N]/d[N] + J[794] -= dqdci; // dwdot[NH]/d[N] + J[796] -= dqdci; // dwdot[NH2]/d[N] + // d()/d[NH] + dqdci = +k_f * sc[28]; + J[854] += dqdci; // dwdot[NH3]/d[NH] + J[856] += dqdci; // dwdot[N]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + J[860] -= dqdci; // dwdot[NH2]/d[NH] + // d()/d[NH2] + dqdci = +k_f * sc[26]; + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[920] += dqdci; // dwdot[N]/d[NH2] + J[922] -= dqdci; // dwdot[NH]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1016] += dqdT; // dwdot[N]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 40: 2 NH <=> N + NH2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = (sc[26] * sc[26]); + k_f = 5.7e-07 * exp(3.88 * logT - (172.100099705214) * invT); + dlnkfdT = 3.88 * invT + (172.100099705214) * invT2; + // reverse + phi_r = sc[24] * sc[28]; + Kc = exp(-g_RT[24] + 2.000000 * g_RT[26] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(2.000000 * h_RT[26]) + (h_RT[24] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[24] += q; // N + wdot[26] -= 2 * q; // NH + wdot[28] += q; // NH2 + // d()/d[N] + dqdci = -k_r * sc[28]; + J[792] += dqdci; // dwdot[N]/d[N] + J[794] += -2 * dqdci; // dwdot[NH]/d[N] + J[796] += dqdci; // dwdot[NH2]/d[N] + // d()/d[NH] + dqdci = +k_f * 2.000000 * sc[26]; + J[856] += dqdci; // dwdot[N]/d[NH] + J[858] += -2 * dqdci; // dwdot[NH]/d[NH] + J[860] += dqdci; // dwdot[NH2]/d[NH] + // d()/d[NH2] + dqdci = -k_r * sc[24]; + J[920] += dqdci; // dwdot[N]/d[NH2] + J[922] += -2 * dqdci; // dwdot[NH]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1016] += dqdT; // dwdot[N]/dT + J[1018] += -2 * dqdT; // dwdot[NH]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 41: 2 NH => H2 + N2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = (sc[26] * sc[26]); + k_f = 6260000 * exp(-0.036 * logT - (-80.9675615279794) * invT); + dlnkfdT = -0.036 * invT + (-80.9675615279794) * invT2; + // rate of progress + q = k_f * phi_f; + dqdT = dlnkfdT * k_f * phi_f; + // update wdot + wdot[1] += q; // N2 + wdot[3] += q; // H2 + wdot[26] -= 2 * q; // NH + // d()/d[NH] + dqdci = +k_f * 2.000000 * sc[26]; + J[833] += dqdci; // dwdot[N2]/d[NH] + J[835] += dqdci; // dwdot[H2]/d[NH] + J[858] += -2 * dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[995] += dqdT; // dwdot[H2]/dT + J[1018] += -2 * dqdT; // dwdot[NH]/dT + + // reaction 42: 2 NH => 2 H + N2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = (sc[26] * sc[26]); + k_f = 56340000 * exp(-0.036 * logT - (-80.9675615279794) * invT); + dlnkfdT = -0.036 * invT + (-80.9675615279794) * invT2; + // rate of progress + q = k_f * phi_f; + dqdT = dlnkfdT * k_f * phi_f; + // update wdot + wdot[1] += q; // N2 + wdot[4] += 2 * q; // H + wdot[26] -= 2 * q; // NH + // d()/d[NH] + dqdci = +k_f * 2.000000 * sc[26]; + J[833] += dqdci; // dwdot[N2]/d[NH] + J[836] += 2 * dqdci; // dwdot[H]/d[NH] + J[858] += -2 * dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[996] += 2 * dqdT; // dwdot[H]/dT + J[1018] += -2 * dqdT; // dwdot[NH]/dT + + // reaction 43: 2 NH2 <=> NH + NH3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = (sc[28] * sc[28]); + k_f = 5.64e-06 * exp(3.53 * logT - (276.769166192596) * invT); + dlnkfdT = 3.53 * invT + (276.769166192596) * invT2; + // reverse + phi_r = sc[22] * sc[26]; + Kc = exp(-g_RT[22] - g_RT[26] + 2.000000 * g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(2.000000 * h_RT[28]) + (h_RT[22] + h_RT[26])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[22] += q; // NH3 + wdot[26] += q; // NH + wdot[28] -= 2 * q; // NH2 + // d()/d[NH3] + dqdci = -k_r * sc[26]; + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[730] += dqdci; // dwdot[NH]/d[NH3] + J[732] += -2 * dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NH] + dqdci = -k_r * sc[22]; + J[854] += dqdci; // dwdot[NH3]/d[NH] + J[858] += dqdci; // dwdot[NH]/d[NH] + J[860] += -2 * dqdci; // dwdot[NH2]/d[NH] + // d()/d[NH2] + dqdci = +k_f * 2.000000 * sc[28]; + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[922] += dqdci; // dwdot[NH]/d[NH2] + J[924] += -2 * dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1018] += dqdT; // dwdot[NH]/dT + J[1020] += -2 * dqdT; // dwdot[NH2]/dT + + // reaction 44: 2 NH2 <=> N2H4 + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = (sc[28] * sc[28]); + k_f = 5.42248766831622e+42 * + exp(-11.2978848534069 * logT - (5973.94105162226) * invT); + dlnkfdT = -11.2978848534069 * invT + (5973.94105162226) * invT2; + // reverse + phi_r = sc[23]; + Kc = refCinv * exp(-g_RT[23] + 2.000000 * g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(2.000000 * h_RT[28]) + (h_RT[23]) + 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[23] += q; // N2H4 + wdot[28] -= 2 * q; // NH2 + // d()/d[N2H4] + dqdci = -k_r; + J[759] += dqdci; // dwdot[N2H4]/d[N2H4] + J[764] += -2 * dqdci; // dwdot[NH2]/d[N2H4] + // d()/d[NH2] + dqdci = +k_f * 2.000000 * sc[28]; + J[919] += dqdci; // dwdot[N2H4]/d[NH2] + J[924] += -2 * dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1015] += dqdT; // dwdot[N2H4]/dT + J[1020] += -2 * dqdT; // dwdot[NH2]/dT + + // reaction 45: 2 NH2 <=> H + N2H3 + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = (sc[28] * sc[28]); + k_f = 1198178.67715513 * + exp(-0.0298856677517254 * logT - (5074.23692769742) * invT); + dlnkfdT = -0.0298856677517254 * invT + (5074.23692769742) * invT2; + // reverse + phi_r = sc[4] * sc[30]; + Kc = exp(-g_RT[4] + 2.000000 * g_RT[28] - g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(2.000000 * h_RT[28]) + (h_RT[4] + h_RT[30])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[28] -= 2 * q; // NH2 + wdot[30] += q; // N2H3 + // d()/d[H] + dqdci = -k_r * sc[30]; + J[132] += dqdci; // dwdot[H]/d[H] + J[156] += -2 * dqdci; // dwdot[NH2]/d[H] + J[158] += dqdci; // dwdot[N2H3]/d[H] + // d()/d[NH2] + dqdci = +k_f * 2.000000 * sc[28]; + J[900] += dqdci; // dwdot[H]/d[NH2] + J[924] += -2 * dqdci; // dwdot[NH2]/d[NH2] + J[926] += dqdci; // dwdot[N2H3]/d[NH2] + // d()/d[N2H3] + dqdci = -k_r * sc[4]; + J[964] += dqdci; // dwdot[H]/d[N2H3] + J[988] += -2 * dqdci; // dwdot[NH2]/d[N2H3] + J[990] += dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1020] += -2 * dqdT; // dwdot[NH2]/dT + J[1022] += dqdT; // dwdot[N2H3]/dT + + // reaction 46: 2 NH2 <=> H2 + H2NN + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = (sc[28] * sc[28]); + k_f = 1.18900999517547e+15 * + exp(-3.07902817588967 * logT - (1691.28964263562) * invT); + dlnkfdT = -3.07902817588967 * invT + (1691.28964263562) * invT2; + // reverse + phi_r = sc[3] * sc[19]; + Kc = exp(-g_RT[3] - g_RT[19] + 2.000000 * g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(2.000000 * h_RT[28]) + (h_RT[3] + h_RT[19])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[19] += q; // H2NN + wdot[28] -= 2 * q; // NH2 + // d()/d[H2] + dqdci = -k_r * sc[19]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[115] += dqdci; // dwdot[H2NN]/d[H2] + J[124] += -2 * dqdci; // dwdot[NH2]/d[H2] + // d()/d[H2NN] + dqdci = -k_r * sc[3]; + J[611] += dqdci; // dwdot[H2]/d[H2NN] + J[627] += dqdci; // dwdot[H2NN]/d[H2NN] + J[636] += -2 * dqdci; // dwdot[NH2]/d[H2NN] + // d()/d[NH2] + dqdci = +k_f * 2.000000 * sc[28]; + J[899] += dqdci; // dwdot[H2]/d[NH2] + J[915] += dqdci; // dwdot[H2NN]/d[NH2] + J[924] += -2 * dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[1011] += dqdT; // dwdot[H2NN]/dT + J[1020] += -2 * dqdT; // dwdot[NH2]/dT + + // reaction 48: H + NH2OH <=> H2 + HNOH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[20]; + k_f = 480 * exp(1.5 * logT - (3144.60094461369) * invT); + dlnkfdT = 1.5 * invT + (3144.60094461369) * invT2; + // reverse + phi_r = sc[3] * sc[21]; + Kc = exp(-g_RT[3] + g_RT[4] + g_RT[20] - g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[20]) + (h_RT[3] + h_RT[21])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[20] -= q; // NH2OH + wdot[21] += q; // HNOH + // d()/d[H2] + dqdci = -k_r * sc[21]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[116] -= dqdci; // dwdot[NH2OH]/d[H2] + J[117] += dqdci; // dwdot[HNOH]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[20]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[148] -= dqdci; // dwdot[NH2OH]/d[H] + J[149] += dqdci; // dwdot[HNOH]/d[H] + // d()/d[NH2OH] + dqdci = +k_f * sc[4]; + J[643] += dqdci; // dwdot[H2]/d[NH2OH] + J[644] -= dqdci; // dwdot[H]/d[NH2OH] + J[660] -= dqdci; // dwdot[NH2OH]/d[NH2OH] + J[661] += dqdci; // dwdot[HNOH]/d[NH2OH] + // d()/d[HNOH] + dqdci = -k_r * sc[3]; + J[675] += dqdci; // dwdot[H2]/d[HNOH] + J[676] -= dqdci; // dwdot[H]/d[HNOH] + J[692] -= dqdci; // dwdot[NH2OH]/d[HNOH] + J[693] += dqdci; // dwdot[HNOH]/d[HNOH] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1013] += dqdT; // dwdot[HNOH]/dT + + // reaction 49: H + NH2OH <=> H2 + H2NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[20]; + k_f = 240 * exp(1.5 * logT - (2549.79884563251) * invT); + dlnkfdT = 1.5 * invT + (2549.79884563251) * invT2; + // reverse + phi_r = sc[3] * sc[29]; + Kc = exp(-g_RT[3] + g_RT[4] + g_RT[20] - g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[20]) + (h_RT[3] + h_RT[29])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[20] -= q; // NH2OH + wdot[29] += q; // H2NO + // d()/d[H2] + dqdci = -k_r * sc[29]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[116] -= dqdci; // dwdot[NH2OH]/d[H2] + J[125] += dqdci; // dwdot[H2NO]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[20]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[148] -= dqdci; // dwdot[NH2OH]/d[H] + J[157] += dqdci; // dwdot[H2NO]/d[H] + // d()/d[NH2OH] + dqdci = +k_f * sc[4]; + J[643] += dqdci; // dwdot[H2]/d[NH2OH] + J[644] -= dqdci; // dwdot[H]/d[NH2OH] + J[660] -= dqdci; // dwdot[NH2OH]/d[NH2OH] + J[669] += dqdci; // dwdot[H2NO]/d[NH2OH] + // d()/d[H2NO] + dqdci = -k_r * sc[3]; + J[931] += dqdci; // dwdot[H2]/d[H2NO] + J[932] -= dqdci; // dwdot[H]/d[H2NO] + J[948] -= dqdci; // dwdot[NH2OH]/d[H2NO] + J[957] += dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1021] += dqdT; // dwdot[H2NO]/dT + + // reaction 50: NH2OH + O <=> HNOH + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[20]; + k_f = 330 * exp(1.5 * logT - (1944.93241333524) * invT); + dlnkfdT = 1.5 * invT + (1944.93241333524) * invT2; + // reverse + phi_r = sc[8] * sc[21]; + Kc = exp(g_RT[6] - g_RT[8] + g_RT[20] - g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[20]) + (h_RT[8] + h_RT[21])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[20] -= q; // NH2OH + wdot[21] += q; // HNOH + // d()/d[O] + dqdci = +k_f * sc[20]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[212] -= dqdci; // dwdot[NH2OH]/d[O] + J[213] += dqdci; // dwdot[HNOH]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[21]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[276] -= dqdci; // dwdot[NH2OH]/d[OH] + J[277] += dqdci; // dwdot[HNOH]/d[OH] + // d()/d[NH2OH] + dqdci = +k_f * sc[6]; + J[646] -= dqdci; // dwdot[O]/d[NH2OH] + J[648] += dqdci; // dwdot[OH]/d[NH2OH] + J[660] -= dqdci; // dwdot[NH2OH]/d[NH2OH] + J[661] += dqdci; // dwdot[HNOH]/d[NH2OH] + // d()/d[HNOH] + dqdci = -k_r * sc[8]; + J[678] -= dqdci; // dwdot[O]/d[HNOH] + J[680] += dqdci; // dwdot[OH]/d[HNOH] + J[692] -= dqdci; // dwdot[NH2OH]/d[HNOH] + J[693] += dqdci; // dwdot[HNOH]/d[HNOH] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1013] += dqdT; // dwdot[HNOH]/dT + + // reaction 51: NH2OH + O <=> H2NO + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[20]; + k_f = 170 * exp(1.5 * logT - (1514.68216407221) * invT); + dlnkfdT = 1.5 * invT + (1514.68216407221) * invT2; + // reverse + phi_r = sc[8] * sc[29]; + Kc = exp(g_RT[6] - g_RT[8] + g_RT[20] - g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[20]) + (h_RT[8] + h_RT[29])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[20] -= q; // NH2OH + wdot[29] += q; // H2NO + // d()/d[O] + dqdci = +k_f * sc[20]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[212] -= dqdci; // dwdot[NH2OH]/d[O] + J[221] += dqdci; // dwdot[H2NO]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[29]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[276] -= dqdci; // dwdot[NH2OH]/d[OH] + J[285] += dqdci; // dwdot[H2NO]/d[OH] + // d()/d[NH2OH] + dqdci = +k_f * sc[6]; + J[646] -= dqdci; // dwdot[O]/d[NH2OH] + J[648] += dqdci; // dwdot[OH]/d[NH2OH] + J[660] -= dqdci; // dwdot[NH2OH]/d[NH2OH] + J[669] += dqdci; // dwdot[H2NO]/d[NH2OH] + // d()/d[H2NO] + dqdci = -k_r * sc[8]; + J[934] -= dqdci; // dwdot[O]/d[H2NO] + J[936] += dqdci; // dwdot[OH]/d[H2NO] + J[948] -= dqdci; // dwdot[NH2OH]/d[H2NO] + J[957] += dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1021] += dqdT; // dwdot[H2NO]/dT + + // reaction 52: NH2OH + OH <=> H2O + HNOH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[20]; + k_f = 0.015 * exp(2.61 * logT - (-1779.87734695129) * invT); + dlnkfdT = 2.61 * invT + (-1779.87734695129) * invT2; + // reverse + phi_r = sc[7] * sc[21]; + Kc = exp(-g_RT[7] + g_RT[8] + g_RT[20] - g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[20]) + (h_RT[7] + h_RT[21])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[20] -= q; // NH2OH + wdot[21] += q; // HNOH + // d()/d[H2O] + dqdci = -k_r * sc[21]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[244] -= dqdci; // dwdot[NH2OH]/d[H2O] + J[245] += dqdci; // dwdot[HNOH]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[20]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[276] -= dqdci; // dwdot[NH2OH]/d[OH] + J[277] += dqdci; // dwdot[HNOH]/d[OH] + // d()/d[NH2OH] + dqdci = +k_f * sc[8]; + J[647] += dqdci; // dwdot[H2O]/d[NH2OH] + J[648] -= dqdci; // dwdot[OH]/d[NH2OH] + J[660] -= dqdci; // dwdot[NH2OH]/d[NH2OH] + J[661] += dqdci; // dwdot[HNOH]/d[NH2OH] + // d()/d[HNOH] + dqdci = -k_r * sc[7]; + J[679] += dqdci; // dwdot[H2O]/d[HNOH] + J[680] -= dqdci; // dwdot[OH]/d[HNOH] + J[692] -= dqdci; // dwdot[NH2OH]/d[HNOH] + J[693] += dqdci; // dwdot[HNOH]/d[HNOH] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1013] += dqdT; // dwdot[HNOH]/dT + + // reaction 53: NH2OH + OH <=> H2NO + H2O + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[20]; + k_f = 0.15 * exp(2.28 * logT - (-652.168798882917) * invT); + dlnkfdT = 2.28 * invT + (-652.168798882917) * invT2; + // reverse + phi_r = sc[7] * sc[29]; + Kc = exp(-g_RT[7] + g_RT[8] + g_RT[20] - g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[20]) + (h_RT[7] + h_RT[29])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[20] -= q; // NH2OH + wdot[29] += q; // H2NO + // d()/d[H2O] + dqdci = -k_r * sc[29]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[244] -= dqdci; // dwdot[NH2OH]/d[H2O] + J[253] += dqdci; // dwdot[H2NO]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[20]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[276] -= dqdci; // dwdot[NH2OH]/d[OH] + J[285] += dqdci; // dwdot[H2NO]/d[OH] + // d()/d[NH2OH] + dqdci = +k_f * sc[8]; + J[647] += dqdci; // dwdot[H2O]/d[NH2OH] + J[648] -= dqdci; // dwdot[OH]/d[NH2OH] + J[660] -= dqdci; // dwdot[NH2OH]/d[NH2OH] + J[669] += dqdci; // dwdot[H2NO]/d[NH2OH] + // d()/d[H2NO] + dqdci = -k_r * sc[7]; + J[935] += dqdci; // dwdot[H2O]/d[H2NO] + J[936] -= dqdci; // dwdot[OH]/d[H2NO] + J[948] -= dqdci; // dwdot[NH2OH]/d[H2NO] + J[957] += dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1021] += dqdT; // dwdot[H2NO]/dT + + // reaction 54: NH2 + NH2OH <=> HNOH + NH3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[20] * sc[28]; + k_f = 1.1e-07 * exp(4 * logT - (-48.8120165830578) * invT); + dlnkfdT = 4 * invT + (-48.8120165830578) * invT2; + // reverse + phi_r = sc[21] * sc[22]; + Kc = exp(g_RT[20] - g_RT[21] - g_RT[22] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[20] + h_RT[28]) + (h_RT[21] + h_RT[22])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[20] -= q; // NH2OH + wdot[21] += q; // HNOH + wdot[22] += q; // NH3 + wdot[28] -= q; // NH2 + // d()/d[NH2OH] + dqdci = +k_f * sc[28]; + J[660] -= dqdci; // dwdot[NH2OH]/d[NH2OH] + J[661] += dqdci; // dwdot[HNOH]/d[NH2OH] + J[662] += dqdci; // dwdot[NH3]/d[NH2OH] + J[668] -= dqdci; // dwdot[NH2]/d[NH2OH] + // d()/d[HNOH] + dqdci = -k_r * sc[22]; + J[692] -= dqdci; // dwdot[NH2OH]/d[HNOH] + J[693] += dqdci; // dwdot[HNOH]/d[HNOH] + J[694] += dqdci; // dwdot[NH3]/d[HNOH] + J[700] -= dqdci; // dwdot[NH2]/d[HNOH] + // d()/d[NH3] + dqdci = -k_r * sc[21]; + J[724] -= dqdci; // dwdot[NH2OH]/d[NH3] + J[725] += dqdci; // dwdot[HNOH]/d[NH3] + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NH2] + dqdci = +k_f * sc[20]; + J[916] -= dqdci; // dwdot[NH2OH]/d[NH2] + J[917] += dqdci; // dwdot[HNOH]/d[NH2] + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1013] += dqdT; // dwdot[HNOH]/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 55: NH2 + NH2OH <=> H2NO + NH3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[20] * sc[28]; + k_f = 9.5e-06 * exp(3.42 * logT - (-509.758482460181) * invT); + dlnkfdT = 3.42 * invT + (-509.758482460181) * invT2; + // reverse + phi_r = sc[22] * sc[29]; + Kc = exp(g_RT[20] - g_RT[22] + g_RT[28] - g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[20] + h_RT[28]) + (h_RT[22] + h_RT[29])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[20] -= q; // NH2OH + wdot[22] += q; // NH3 + wdot[28] -= q; // NH2 + wdot[29] += q; // H2NO + // d()/d[NH2OH] + dqdci = +k_f * sc[28]; + J[660] -= dqdci; // dwdot[NH2OH]/d[NH2OH] + J[662] += dqdci; // dwdot[NH3]/d[NH2OH] + J[668] -= dqdci; // dwdot[NH2]/d[NH2OH] + J[669] += dqdci; // dwdot[H2NO]/d[NH2OH] + // d()/d[NH3] + dqdci = -k_r * sc[29]; + J[724] -= dqdci; // dwdot[NH2OH]/d[NH3] + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + J[733] += dqdci; // dwdot[H2NO]/d[NH3] + // d()/d[NH2] + dqdci = +k_f * sc[20]; + J[916] -= dqdci; // dwdot[NH2OH]/d[NH2] + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + J[925] += dqdci; // dwdot[H2NO]/d[NH2] + // d()/d[H2NO] + dqdci = -k_r * sc[22]; + J[948] -= dqdci; // dwdot[NH2OH]/d[H2NO] + J[950] += dqdci; // dwdot[NH3]/d[H2NO] + J[956] -= dqdci; // dwdot[NH2]/d[H2NO] + J[957] += dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + J[1021] += dqdT; // dwdot[H2NO]/dT + + // reaction 56: NH + NH2OH <=> HNOH + NH2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[20] * sc[26]; + k_f = 2.9e-09 * exp(4.4 * logT - (787.030865318582) * invT); + dlnkfdT = 4.4 * invT + (787.030865318582) * invT2; + // reverse + phi_r = sc[21] * sc[28]; + Kc = exp(g_RT[20] - g_RT[21] + g_RT[26] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[20] + h_RT[26]) + (h_RT[21] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[20] -= q; // NH2OH + wdot[21] += q; // HNOH + wdot[26] -= q; // NH + wdot[28] += q; // NH2 + // d()/d[NH2OH] + dqdci = +k_f * sc[26]; + J[660] -= dqdci; // dwdot[NH2OH]/d[NH2OH] + J[661] += dqdci; // dwdot[HNOH]/d[NH2OH] + J[666] -= dqdci; // dwdot[NH]/d[NH2OH] + J[668] += dqdci; // dwdot[NH2]/d[NH2OH] + // d()/d[HNOH] + dqdci = -k_r * sc[28]; + J[692] -= dqdci; // dwdot[NH2OH]/d[HNOH] + J[693] += dqdci; // dwdot[HNOH]/d[HNOH] + J[698] -= dqdci; // dwdot[NH]/d[HNOH] + J[700] += dqdci; // dwdot[NH2]/d[HNOH] + // d()/d[NH] + dqdci = +k_f * sc[20]; + J[852] -= dqdci; // dwdot[NH2OH]/d[NH] + J[853] += dqdci; // dwdot[HNOH]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + J[860] += dqdci; // dwdot[NH2]/d[NH] + // d()/d[NH2] + dqdci = -k_r * sc[21]; + J[916] -= dqdci; // dwdot[NH2OH]/d[NH2] + J[917] += dqdci; // dwdot[HNOH]/d[NH2] + J[922] -= dqdci; // dwdot[NH]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1013] += dqdT; // dwdot[HNOH]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 57: NH + NH2OH <=> H2NO + NH2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[20] * sc[26]; + k_f = 1.5e-09 * exp(4.6 * logT - (1219.79719791064) * invT); + dlnkfdT = 4.6 * invT + (1219.79719791064) * invT2; + // reverse + phi_r = sc[28] * sc[29]; + Kc = exp(g_RT[20] + g_RT[26] - g_RT[28] - g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[20] + h_RT[26]) + (h_RT[28] + h_RT[29])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[20] -= q; // NH2OH + wdot[26] -= q; // NH + wdot[28] += q; // NH2 + wdot[29] += q; // H2NO + // d()/d[NH2OH] + dqdci = +k_f * sc[26]; + J[660] -= dqdci; // dwdot[NH2OH]/d[NH2OH] + J[666] -= dqdci; // dwdot[NH]/d[NH2OH] + J[668] += dqdci; // dwdot[NH2]/d[NH2OH] + J[669] += dqdci; // dwdot[H2NO]/d[NH2OH] + // d()/d[NH] + dqdci = +k_f * sc[20]; + J[852] -= dqdci; // dwdot[NH2OH]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + J[860] += dqdci; // dwdot[NH2]/d[NH] + J[861] += dqdci; // dwdot[H2NO]/d[NH] + // d()/d[NH2] + dqdci = -k_r * sc[29]; + J[916] -= dqdci; // dwdot[NH2OH]/d[NH2] + J[922] -= dqdci; // dwdot[NH]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + J[925] += dqdci; // dwdot[H2NO]/d[NH2] + // d()/d[H2NO] + dqdci = -k_r * sc[28]; + J[948] -= dqdci; // dwdot[NH2OH]/d[H2NO] + J[954] -= dqdci; // dwdot[NH]/d[H2NO] + J[956] += dqdci; // dwdot[NH2]/d[H2NO] + J[957] += dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + J[1021] += dqdT; // dwdot[H2NO]/dT + + // reaction 58: HO2 + NH2OH <=> H2O2 + HNOH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[20]; + k_f = 0.029 * exp(2.69 * logT - (4809.24167509571) * invT); + dlnkfdT = 2.69 * invT + (4809.24167509571) * invT2; + // reverse + phi_r = sc[9] * sc[21]; + Kc = exp(-g_RT[9] + g_RT[10] + g_RT[20] - g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[20]) + (h_RT[9] + h_RT[21])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[9] += q; // H2O2 + wdot[10] -= q; // HO2 + wdot[20] -= q; // NH2OH + wdot[21] += q; // HNOH + // d()/d[H2O2] + dqdci = -k_r * sc[21]; + J[297] += dqdci; // dwdot[H2O2]/d[H2O2] + J[298] -= dqdci; // dwdot[HO2]/d[H2O2] + J[308] -= dqdci; // dwdot[NH2OH]/d[H2O2] + J[309] += dqdci; // dwdot[HNOH]/d[H2O2] + // d()/d[HO2] + dqdci = +k_f * sc[20]; + J[329] += dqdci; // dwdot[H2O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[340] -= dqdci; // dwdot[NH2OH]/d[HO2] + J[341] += dqdci; // dwdot[HNOH]/d[HO2] + // d()/d[NH2OH] + dqdci = +k_f * sc[10]; + J[649] += dqdci; // dwdot[H2O2]/d[NH2OH] + J[650] -= dqdci; // dwdot[HO2]/d[NH2OH] + J[660] -= dqdci; // dwdot[NH2OH]/d[NH2OH] + J[661] += dqdci; // dwdot[HNOH]/d[NH2OH] + // d()/d[HNOH] + dqdci = -k_r * sc[9]; + J[681] += dqdci; // dwdot[H2O2]/d[HNOH] + J[682] -= dqdci; // dwdot[HO2]/d[HNOH] + J[692] -= dqdci; // dwdot[NH2OH]/d[HNOH] + J[693] += dqdci; // dwdot[HNOH]/d[HNOH] + // d()/dT + J[1001] += dqdT; // dwdot[H2O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1013] += dqdT; // dwdot[HNOH]/dT + + // reaction 59: HO2 + NH2OH <=> H2NO + H2O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[20]; + k_f = 0.014 * exp(2.69 * logT - (3229.64456113469) * invT); + dlnkfdT = 2.69 * invT + (3229.64456113469) * invT2; + // reverse + phi_r = sc[9] * sc[29]; + Kc = exp(-g_RT[9] + g_RT[10] + g_RT[20] - g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[20]) + (h_RT[9] + h_RT[29])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[9] += q; // H2O2 + wdot[10] -= q; // HO2 + wdot[20] -= q; // NH2OH + wdot[29] += q; // H2NO + // d()/d[H2O2] + dqdci = -k_r * sc[29]; + J[297] += dqdci; // dwdot[H2O2]/d[H2O2] + J[298] -= dqdci; // dwdot[HO2]/d[H2O2] + J[308] -= dqdci; // dwdot[NH2OH]/d[H2O2] + J[317] += dqdci; // dwdot[H2NO]/d[H2O2] + // d()/d[HO2] + dqdci = +k_f * sc[20]; + J[329] += dqdci; // dwdot[H2O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[340] -= dqdci; // dwdot[NH2OH]/d[HO2] + J[349] += dqdci; // dwdot[H2NO]/d[HO2] + // d()/d[NH2OH] + dqdci = +k_f * sc[10]; + J[649] += dqdci; // dwdot[H2O2]/d[NH2OH] + J[650] -= dqdci; // dwdot[HO2]/d[NH2OH] + J[660] -= dqdci; // dwdot[NH2OH]/d[NH2OH] + J[669] += dqdci; // dwdot[H2NO]/d[NH2OH] + // d()/d[H2NO] + dqdci = -k_r * sc[9]; + J[937] += dqdci; // dwdot[H2O2]/d[H2NO] + J[938] -= dqdci; // dwdot[HO2]/d[H2NO] + J[948] -= dqdci; // dwdot[NH2OH]/d[H2NO] + J[957] += dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[1001] += dqdT; // dwdot[H2O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1012] -= dqdT; // dwdot[NH2OH]/dT + J[1021] += dqdT; // dwdot[H2NO]/dT + + // reaction 61: HNOH + O2 <=> HNO + HO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[5] * sc[21]; + k_f = 3000000 * exp(-(12580.416645118) * invT); + dlnkfdT = (12580.416645118) * invT2; + // reverse + phi_r = sc[10] * sc[14]; + Kc = exp(g_RT[5] - g_RT[10] - g_RT[14] + g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[5] + h_RT[21]) + (h_RT[10] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] -= q; // O2 + wdot[10] += q; // HO2 + wdot[14] += q; // HNO + wdot[21] -= q; // HNOH + // d()/d[O2] + dqdci = +k_f * sc[21]; + J[165] -= dqdci; // dwdot[O2]/d[O2] + J[170] += dqdci; // dwdot[HO2]/d[O2] + J[174] += dqdci; // dwdot[HNO]/d[O2] + J[181] -= dqdci; // dwdot[HNOH]/d[O2] + // d()/d[HO2] + dqdci = -k_r * sc[14]; + J[325] -= dqdci; // dwdot[O2]/d[HO2] + J[330] += dqdci; // dwdot[HO2]/d[HO2] + J[334] += dqdci; // dwdot[HNO]/d[HO2] + J[341] -= dqdci; // dwdot[HNOH]/d[HO2] + // d()/d[HNO] + dqdci = -k_r * sc[10]; + J[453] -= dqdci; // dwdot[O2]/d[HNO] + J[458] += dqdci; // dwdot[HO2]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[469] -= dqdci; // dwdot[HNOH]/d[HNO] + // d()/d[HNOH] + dqdci = +k_f * sc[5]; + J[677] -= dqdci; // dwdot[O2]/d[HNOH] + J[682] += dqdci; // dwdot[HO2]/d[HNOH] + J[686] += dqdci; // dwdot[HNO]/d[HNOH] + J[693] -= dqdci; // dwdot[HNOH]/d[HNOH] + // d()/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + + // reaction 62: H + HNOH <=> NH2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[21]; + k_f = 40000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[8] * sc[28]; + Kc = exp(g_RT[4] - g_RT[8] + g_RT[21] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[21]) + (h_RT[8] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] -= q; // H + wdot[8] += q; // OH + wdot[21] -= q; // HNOH + wdot[28] += q; // NH2 + // d()/d[H] + dqdci = +k_f * sc[21]; + J[132] -= dqdci; // dwdot[H]/d[H] + J[136] += dqdci; // dwdot[OH]/d[H] + J[149] -= dqdci; // dwdot[HNOH]/d[H] + J[156] += dqdci; // dwdot[NH2]/d[H] + // d()/d[OH] + dqdci = -k_r * sc[28]; + J[260] -= dqdci; // dwdot[H]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[277] -= dqdci; // dwdot[HNOH]/d[OH] + J[284] += dqdci; // dwdot[NH2]/d[OH] + // d()/d[HNOH] + dqdci = +k_f * sc[4]; + J[676] -= dqdci; // dwdot[H]/d[HNOH] + J[680] += dqdci; // dwdot[OH]/d[HNOH] + J[693] -= dqdci; // dwdot[HNOH]/d[HNOH] + J[700] += dqdci; // dwdot[NH2]/d[HNOH] + // d()/d[NH2] + dqdci = -k_r * sc[8]; + J[900] -= dqdci; // dwdot[H]/d[NH2] + J[904] += dqdci; // dwdot[OH]/d[NH2] + J[917] -= dqdci; // dwdot[HNOH]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 63: H + HNOH <=> H2 + HNO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[21]; + k_f = 480 * exp(1.5 * logT - (190.215899674184) * invT); + dlnkfdT = 1.5 * invT + (190.215899674184) * invT2; + // reverse + phi_r = sc[3] * sc[14]; + Kc = exp(-g_RT[3] + g_RT[4] - g_RT[14] + g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[21]) + (h_RT[3] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[14] += q; // HNO + wdot[21] -= q; // HNOH + // d()/d[H2] + dqdci = -k_r * sc[14]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[110] += dqdci; // dwdot[HNO]/d[H2] + J[117] -= dqdci; // dwdot[HNOH]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[21]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[142] += dqdci; // dwdot[HNO]/d[H] + J[149] -= dqdci; // dwdot[HNOH]/d[H] + // d()/d[HNO] + dqdci = -k_r * sc[3]; + J[451] += dqdci; // dwdot[H2]/d[HNO] + J[452] -= dqdci; // dwdot[H]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[469] -= dqdci; // dwdot[HNOH]/d[HNO] + // d()/d[HNOH] + dqdci = +k_f * sc[4]; + J[675] += dqdci; // dwdot[H2]/d[HNOH] + J[676] -= dqdci; // dwdot[H]/d[HNOH] + J[686] += dqdci; // dwdot[HNO]/d[HNOH] + J[693] -= dqdci; // dwdot[HNOH]/d[HNOH] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + + // reaction 64: HNOH + O <=> HNO + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[21]; + k_f = 70000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[8] * sc[14]; + Kc = exp(g_RT[6] - g_RT[8] - g_RT[14] + g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[21]) + (h_RT[8] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[14] += q; // HNO + wdot[21] -= q; // HNOH + // d()/d[O] + dqdci = +k_f * sc[21]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[206] += dqdci; // dwdot[HNO]/d[O] + J[213] -= dqdci; // dwdot[HNOH]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[14]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[270] += dqdci; // dwdot[HNO]/d[OH] + J[277] -= dqdci; // dwdot[HNOH]/d[OH] + // d()/d[HNO] + dqdci = -k_r * sc[8]; + J[454] -= dqdci; // dwdot[O]/d[HNO] + J[456] += dqdci; // dwdot[OH]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[469] -= dqdci; // dwdot[HNOH]/d[HNO] + // d()/d[HNOH] + dqdci = +k_f * sc[6]; + J[678] -= dqdci; // dwdot[O]/d[HNOH] + J[680] += dqdci; // dwdot[OH]/d[HNOH] + J[686] += dqdci; // dwdot[HNO]/d[HNOH] + J[693] -= dqdci; // dwdot[HNOH]/d[HNOH] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + + // reaction 65: HNOH + O <=> HNO + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[21]; + k_f = 330 * exp(1.5 * logT - (-180.15156635809) * invT); + dlnkfdT = 1.5 * invT + (-180.15156635809) * invT2; + // reverse + phi_r = sc[8] * sc[14]; + Kc = exp(g_RT[6] - g_RT[8] - g_RT[14] + g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[21]) + (h_RT[8] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[14] += q; // HNO + wdot[21] -= q; // HNOH + // d()/d[O] + dqdci = +k_f * sc[21]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[206] += dqdci; // dwdot[HNO]/d[O] + J[213] -= dqdci; // dwdot[HNOH]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[14]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[270] += dqdci; // dwdot[HNO]/d[OH] + J[277] -= dqdci; // dwdot[HNOH]/d[OH] + // d()/d[HNO] + dqdci = -k_r * sc[8]; + J[454] -= dqdci; // dwdot[O]/d[HNO] + J[456] += dqdci; // dwdot[OH]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[469] -= dqdci; // dwdot[HNOH]/d[HNO] + // d()/d[HNOH] + dqdci = +k_f * sc[6]; + J[678] -= dqdci; // dwdot[O]/d[HNOH] + J[680] += dqdci; // dwdot[OH]/d[HNOH] + J[686] += dqdci; // dwdot[HNO]/d[HNOH] + J[693] -= dqdci; // dwdot[HNOH]/d[HNOH] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + + // reaction 66: HNOH + OH <=> H2O + HNO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[21]; + k_f = 2.4 * exp(2 * logT - (-599.834265639226) * invT); + dlnkfdT = 2 * invT + (-599.834265639226) * invT2; + // reverse + phi_r = sc[7] * sc[14]; + Kc = exp(-g_RT[7] + g_RT[8] - g_RT[14] + g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[21]) + (h_RT[7] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[14] += q; // HNO + wdot[21] -= q; // HNOH + // d()/d[H2O] + dqdci = -k_r * sc[14]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[238] += dqdci; // dwdot[HNO]/d[H2O] + J[245] -= dqdci; // dwdot[HNOH]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[21]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[270] += dqdci; // dwdot[HNO]/d[OH] + J[277] -= dqdci; // dwdot[HNOH]/d[OH] + // d()/d[HNO] + dqdci = -k_r * sc[7]; + J[455] += dqdci; // dwdot[H2O]/d[HNO] + J[456] -= dqdci; // dwdot[OH]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[469] -= dqdci; // dwdot[HNOH]/d[HNO] + // d()/d[HNOH] + dqdci = +k_f * sc[8]; + J[679] += dqdci; // dwdot[H2O]/d[HNOH] + J[680] -= dqdci; // dwdot[OH]/d[HNOH] + J[686] += dqdci; // dwdot[HNO]/d[HNOH] + J[693] -= dqdci; // dwdot[HNOH]/d[HNOH] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + + // reaction 67: HNOH + HO2 <=> H2O2 + HNO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[21]; + k_f = 0.029 * exp(2.69 * logT - (-805.146665287552) * invT); + dlnkfdT = 2.69 * invT + (-805.146665287552) * invT2; + // reverse + phi_r = sc[9] * sc[14]; + Kc = exp(-g_RT[9] + g_RT[10] - g_RT[14] + g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[21]) + (h_RT[9] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[9] += q; // H2O2 + wdot[10] -= q; // HO2 + wdot[14] += q; // HNO + wdot[21] -= q; // HNOH + // d()/d[H2O2] + dqdci = -k_r * sc[14]; + J[297] += dqdci; // dwdot[H2O2]/d[H2O2] + J[298] -= dqdci; // dwdot[HO2]/d[H2O2] + J[302] += dqdci; // dwdot[HNO]/d[H2O2] + J[309] -= dqdci; // dwdot[HNOH]/d[H2O2] + // d()/d[HO2] + dqdci = +k_f * sc[21]; + J[329] += dqdci; // dwdot[H2O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[334] += dqdci; // dwdot[HNO]/d[HO2] + J[341] -= dqdci; // dwdot[HNOH]/d[HO2] + // d()/d[HNO] + dqdci = -k_r * sc[9]; + J[457] += dqdci; // dwdot[H2O2]/d[HNO] + J[458] -= dqdci; // dwdot[HO2]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[469] -= dqdci; // dwdot[HNOH]/d[HNO] + // d()/d[HNOH] + dqdci = +k_f * sc[10]; + J[681] += dqdci; // dwdot[H2O2]/d[HNOH] + J[682] -= dqdci; // dwdot[HO2]/d[HNOH] + J[686] += dqdci; // dwdot[HNO]/d[HNOH] + J[693] -= dqdci; // dwdot[HNOH]/d[HNOH] + // d()/dT + J[1001] += dqdT; // dwdot[H2O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + + // reaction 68: HNOH + HO2 <=> NH2OH + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[21]; + k_f = 0.029 * exp(2.69 * logT - (-805.146665287552) * invT); + dlnkfdT = 2.69 * invT + (-805.146665287552) * invT2; + // reverse + phi_r = sc[5] * sc[20]; + Kc = exp(-g_RT[5] + g_RT[10] - g_RT[20] + g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[21]) + (h_RT[5] + h_RT[20])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[10] -= q; // HO2 + wdot[20] += q; // NH2OH + wdot[21] -= q; // HNOH + // d()/d[O2] + dqdci = -k_r * sc[20]; + J[165] += dqdci; // dwdot[O2]/d[O2] + J[170] -= dqdci; // dwdot[HO2]/d[O2] + J[180] += dqdci; // dwdot[NH2OH]/d[O2] + J[181] -= dqdci; // dwdot[HNOH]/d[O2] + // d()/d[HO2] + dqdci = +k_f * sc[21]; + J[325] += dqdci; // dwdot[O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[340] += dqdci; // dwdot[NH2OH]/d[HO2] + J[341] -= dqdci; // dwdot[HNOH]/d[HO2] + // d()/d[NH2OH] + dqdci = -k_r * sc[5]; + J[645] += dqdci; // dwdot[O2]/d[NH2OH] + J[650] -= dqdci; // dwdot[HO2]/d[NH2OH] + J[660] += dqdci; // dwdot[NH2OH]/d[NH2OH] + J[661] -= dqdci; // dwdot[HNOH]/d[NH2OH] + // d()/d[HNOH] + dqdci = +k_f * sc[10]; + J[677] += dqdci; // dwdot[O2]/d[HNOH] + J[682] -= dqdci; // dwdot[HO2]/d[HNOH] + J[692] += dqdci; // dwdot[NH2OH]/d[HNOH] + J[693] -= dqdci; // dwdot[HNOH]/d[HNOH] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1012] += dqdT; // dwdot[NH2OH]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + + // reaction 69: HNOH + NH2 <=> HNO + NH3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[21] * sc[28]; + k_f = 1.8 * exp(1.94 * logT - (-579.705599007037) * invT); + dlnkfdT = 1.94 * invT + (-579.705599007037) * invT2; + // reverse + phi_r = sc[14] * sc[22]; + Kc = exp(-g_RT[14] + g_RT[21] - g_RT[22] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[21] + h_RT[28]) + (h_RT[14] + h_RT[22])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[14] += q; // HNO + wdot[21] -= q; // HNOH + wdot[22] += q; // NH3 + wdot[28] -= q; // NH2 + // d()/d[HNO] + dqdci = -k_r * sc[22]; + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[469] -= dqdci; // dwdot[HNOH]/d[HNO] + J[470] += dqdci; // dwdot[NH3]/d[HNO] + J[476] -= dqdci; // dwdot[NH2]/d[HNO] + // d()/d[HNOH] + dqdci = +k_f * sc[28]; + J[686] += dqdci; // dwdot[HNO]/d[HNOH] + J[693] -= dqdci; // dwdot[HNOH]/d[HNOH] + J[694] += dqdci; // dwdot[NH3]/d[HNOH] + J[700] -= dqdci; // dwdot[NH2]/d[HNOH] + // d()/d[NH3] + dqdci = -k_r * sc[14]; + J[718] += dqdci; // dwdot[HNO]/d[NH3] + J[725] -= dqdci; // dwdot[HNOH]/d[NH3] + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NH2] + dqdci = +k_f * sc[21]; + J[910] += dqdci; // dwdot[HNO]/d[NH2] + J[917] -= dqdci; // dwdot[HNOH]/d[NH2] + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 70: HNOH + NH2 <=> N2H3 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[21] * sc[28]; + k_f = 6.7 * exp(1.82 * logT - (359.950881050116) * invT); + dlnkfdT = 1.82 * invT + (359.950881050116) * invT2; + // reverse + phi_r = sc[8] * sc[30]; + Kc = exp(-g_RT[8] + g_RT[21] + g_RT[28] - g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[21] + h_RT[28]) + (h_RT[8] + h_RT[30])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[8] += q; // OH + wdot[21] -= q; // HNOH + wdot[28] -= q; // NH2 + wdot[30] += q; // N2H3 + // d()/d[OH] + dqdci = -k_r * sc[30]; + J[264] += dqdci; // dwdot[OH]/d[OH] + J[277] -= dqdci; // dwdot[HNOH]/d[OH] + J[284] -= dqdci; // dwdot[NH2]/d[OH] + J[286] += dqdci; // dwdot[N2H3]/d[OH] + // d()/d[HNOH] + dqdci = +k_f * sc[28]; + J[680] += dqdci; // dwdot[OH]/d[HNOH] + J[693] -= dqdci; // dwdot[HNOH]/d[HNOH] + J[700] -= dqdci; // dwdot[NH2]/d[HNOH] + J[702] += dqdci; // dwdot[N2H3]/d[HNOH] + // d()/d[NH2] + dqdci = +k_f * sc[21]; + J[904] += dqdci; // dwdot[OH]/d[NH2] + J[917] -= dqdci; // dwdot[HNOH]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + J[926] += dqdci; // dwdot[N2H3]/d[NH2] + // d()/d[N2H3] + dqdci = -k_r * sc[8]; + J[968] += dqdci; // dwdot[OH]/d[N2H3] + J[981] -= dqdci; // dwdot[HNOH]/d[N2H3] + J[988] -= dqdci; // dwdot[NH2]/d[N2H3] + J[990] += dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + J[1022] += dqdT; // dwdot[N2H3]/dT + + // reaction 71: HNOH + NH2 <=> H2NN + H2O + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[21] * sc[28]; + k_f = 46000000000000 * exp(-1.94 * logT - (969.899801672017) * invT); + dlnkfdT = -1.94 * invT + (969.899801672017) * invT2; + // reverse + phi_r = sc[7] * sc[19]; + Kc = exp(-g_RT[7] - g_RT[19] + g_RT[21] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[21] + h_RT[28]) + (h_RT[7] + h_RT[19])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[19] += q; // H2NN + wdot[21] -= q; // HNOH + wdot[28] -= q; // NH2 + // d()/d[H2O] + dqdci = -k_r * sc[19]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[243] += dqdci; // dwdot[H2NN]/d[H2O] + J[245] -= dqdci; // dwdot[HNOH]/d[H2O] + J[252] -= dqdci; // dwdot[NH2]/d[H2O] + // d()/d[H2NN] + dqdci = -k_r * sc[7]; + J[615] += dqdci; // dwdot[H2O]/d[H2NN] + J[627] += dqdci; // dwdot[H2NN]/d[H2NN] + J[629] -= dqdci; // dwdot[HNOH]/d[H2NN] + J[636] -= dqdci; // dwdot[NH2]/d[H2NN] + // d()/d[HNOH] + dqdci = +k_f * sc[28]; + J[679] += dqdci; // dwdot[H2O]/d[HNOH] + J[691] += dqdci; // dwdot[H2NN]/d[HNOH] + J[693] -= dqdci; // dwdot[HNOH]/d[HNOH] + J[700] -= dqdci; // dwdot[NH2]/d[HNOH] + // d()/d[NH2] + dqdci = +k_f * sc[21]; + J[903] += dqdci; // dwdot[H2O]/d[NH2] + J[915] += dqdci; // dwdot[H2NN]/d[NH2] + J[917] -= dqdci; // dwdot[HNOH]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1011] += dqdT; // dwdot[H2NN]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 72: HNOH + NO2 <=> HNO + HONO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[13] * sc[21]; + k_f = 600000 * exp(-(1006.43333160944) * invT); + dlnkfdT = (1006.43333160944) * invT2; + // reverse + phi_r = sc[14] * sc[16]; + Kc = exp(g_RT[13] - g_RT[14] - g_RT[16] + g_RT[21]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[13] + h_RT[21]) + (h_RT[14] + h_RT[16])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[13] -= q; // NO2 + wdot[14] += q; // HNO + wdot[16] += q; // HONO + wdot[21] -= q; // HNOH + // d()/d[NO2] + dqdci = +k_f * sc[21]; + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[430] += dqdci; // dwdot[HNO]/d[NO2] + J[432] += dqdci; // dwdot[HONO]/d[NO2] + J[437] -= dqdci; // dwdot[HNOH]/d[NO2] + // d()/d[HNO] + dqdci = -k_r * sc[16]; + J[461] -= dqdci; // dwdot[NO2]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[464] += dqdci; // dwdot[HONO]/d[HNO] + J[469] -= dqdci; // dwdot[HNOH]/d[HNO] + // d()/d[HONO] + dqdci = -k_r * sc[14]; + J[525] -= dqdci; // dwdot[NO2]/d[HONO] + J[526] += dqdci; // dwdot[HNO]/d[HONO] + J[528] += dqdci; // dwdot[HONO]/d[HONO] + J[533] -= dqdci; // dwdot[HNOH]/d[HONO] + // d()/d[HNOH] + dqdci = +k_f * sc[13]; + J[685] -= dqdci; // dwdot[NO2]/d[HNOH] + J[686] += dqdci; // dwdot[HNO]/d[HNOH] + J[688] += dqdci; // dwdot[HONO]/d[HNOH] + J[693] -= dqdci; // dwdot[HNOH]/d[HNOH] + // d()/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1008] += dqdT; // dwdot[HONO]/dT + J[1013] -= dqdT; // dwdot[HNOH]/dT + + // reaction 73: NH2 + NO2 <=> H2NO + NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[13] * sc[28]; + k_f = 860000 * exp(0.11 * logT - (-596.814965644398) * invT); + dlnkfdT = 0.11 * invT + (-596.814965644398) * invT2; + // reverse + phi_r = sc[11] * sc[29]; + Kc = exp(-g_RT[11] + g_RT[13] + g_RT[28] - g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[13] + h_RT[28]) + (h_RT[11] + h_RT[29])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[11] += q; // NO + wdot[13] -= q; // NO2 + wdot[28] -= q; // NH2 + wdot[29] += q; // H2NO + // d()/d[NO] + dqdci = -k_r * sc[29]; + J[363] += dqdci; // dwdot[NO]/d[NO] + J[365] -= dqdci; // dwdot[NO2]/d[NO] + J[380] -= dqdci; // dwdot[NH2]/d[NO] + J[381] += dqdci; // dwdot[H2NO]/d[NO] + // d()/d[NO2] + dqdci = +k_f * sc[28]; + J[427] += dqdci; // dwdot[NO]/d[NO2] + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[444] -= dqdci; // dwdot[NH2]/d[NO2] + J[445] += dqdci; // dwdot[H2NO]/d[NO2] + // d()/d[NH2] + dqdci = +k_f * sc[13]; + J[907] += dqdci; // dwdot[NO]/d[NH2] + J[909] -= dqdci; // dwdot[NO2]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + J[925] += dqdci; // dwdot[H2NO]/d[NH2] + // d()/d[H2NO] + dqdci = -k_r * sc[11]; + J[939] += dqdci; // dwdot[NO]/d[H2NO] + J[941] -= dqdci; // dwdot[NO2]/d[H2NO] + J[956] -= dqdci; // dwdot[NH2]/d[H2NO] + J[957] += dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + J[1021] += dqdT; // dwdot[H2NO]/dT + + // reaction 74: NH2 + NO2 <=> H2O + N2O + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[13] * sc[28]; + k_f = 220000 * exp(0.11 * logT - (-596.814965644398) * invT); + dlnkfdT = 0.11 * invT + (-596.814965644398) * invT2; + // reverse + phi_r = sc[7] * sc[12]; + Kc = exp(-g_RT[7] - g_RT[12] + g_RT[13] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[13] + h_RT[28]) + (h_RT[7] + h_RT[12])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[12] += q; // N2O + wdot[13] -= q; // NO2 + wdot[28] -= q; // NH2 + // d()/d[H2O] + dqdci = -k_r * sc[12]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[236] += dqdci; // dwdot[N2O]/d[H2O] + J[237] -= dqdci; // dwdot[NO2]/d[H2O] + J[252] -= dqdci; // dwdot[NH2]/d[H2O] + // d()/d[N2O] + dqdci = -k_r * sc[7]; + J[391] += dqdci; // dwdot[H2O]/d[N2O] + J[396] += dqdci; // dwdot[N2O]/d[N2O] + J[397] -= dqdci; // dwdot[NO2]/d[N2O] + J[412] -= dqdci; // dwdot[NH2]/d[N2O] + // d()/d[NO2] + dqdci = +k_f * sc[28]; + J[423] += dqdci; // dwdot[H2O]/d[NO2] + J[428] += dqdci; // dwdot[N2O]/d[NO2] + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[444] -= dqdci; // dwdot[NH2]/d[NO2] + // d()/d[NH2] + dqdci = +k_f * sc[13]; + J[903] += dqdci; // dwdot[H2O]/d[NH2] + J[908] += dqdci; // dwdot[N2O]/d[NH2] + J[909] -= dqdci; // dwdot[NO2]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1004] += dqdT; // dwdot[N2O]/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 75: NH2 + NO <=> H2O + N2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[11] * sc[28]; + k_f = 26000000000000 * exp(-2.369 * logT - (437.798499250106) * invT); + dlnkfdT = -2.369 * invT + (437.798499250106) * invT2; + // reverse + phi_r = sc[1] * sc[7]; + Kc = exp(-g_RT[1] - g_RT[7] + g_RT[11] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[11] + h_RT[28]) + (h_RT[1] + h_RT[7])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[7] += q; // H2O + wdot[11] -= q; // NO + wdot[28] -= q; // NH2 + // d()/d[N2] + dqdci = -k_r * sc[7]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[39] += dqdci; // dwdot[H2O]/d[N2] + J[43] -= dqdci; // dwdot[NO]/d[N2] + J[60] -= dqdci; // dwdot[NH2]/d[N2] + // d()/d[H2O] + dqdci = -k_r * sc[1]; + J[225] += dqdci; // dwdot[N2]/d[H2O] + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[235] -= dqdci; // dwdot[NO]/d[H2O] + J[252] -= dqdci; // dwdot[NH2]/d[H2O] + // d()/d[NO] + dqdci = +k_f * sc[28]; + J[353] += dqdci; // dwdot[N2]/d[NO] + J[359] += dqdci; // dwdot[H2O]/d[NO] + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[380] -= dqdci; // dwdot[NH2]/d[NO] + // d()/d[NH2] + dqdci = +k_f * sc[11]; + J[897] += dqdci; // dwdot[N2]/d[NH2] + J[903] += dqdci; // dwdot[H2O]/d[NH2] + J[907] -= dqdci; // dwdot[NO]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 76: NH2 + NO <=> NNH + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[11] * sc[28]; + k_f = 43000 * exp(0.294 * logT - (-435.785632586887) * invT); + dlnkfdT = 0.294 * invT + (-435.785632586887) * invT2; + // reverse + phi_r = sc[8] * sc[27]; + Kc = exp(-g_RT[8] + g_RT[11] - g_RT[27] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[11] + h_RT[28]) + (h_RT[8] + h_RT[27])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[8] += q; // OH + wdot[11] -= q; // NO + wdot[27] += q; // NNH + wdot[28] -= q; // NH2 + // d()/d[OH] + dqdci = -k_r * sc[27]; + J[264] += dqdci; // dwdot[OH]/d[OH] + J[267] -= dqdci; // dwdot[NO]/d[OH] + J[283] += dqdci; // dwdot[NNH]/d[OH] + J[284] -= dqdci; // dwdot[NH2]/d[OH] + // d()/d[NO] + dqdci = +k_f * sc[28]; + J[360] += dqdci; // dwdot[OH]/d[NO] + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[379] += dqdci; // dwdot[NNH]/d[NO] + J[380] -= dqdci; // dwdot[NH2]/d[NO] + // d()/d[NNH] + dqdci = -k_r * sc[8]; + J[872] += dqdci; // dwdot[OH]/d[NNH] + J[875] -= dqdci; // dwdot[NO]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + J[892] -= dqdci; // dwdot[NH2]/d[NNH] + // d()/d[NH2] + dqdci = +k_f * sc[11]; + J[904] += dqdci; // dwdot[OH]/d[NH2] + J[907] -= dqdci; // dwdot[NO]/d[NH2] + J[923] += dqdci; // dwdot[NNH]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 77: H + NH <=> H2 + N + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[26]; + k_f = 30100000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[3] * sc[24]; + Kc = exp(-g_RT[3] + g_RT[4] - g_RT[24] + g_RT[26]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[26]) + (h_RT[3] + h_RT[24])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[24] += q; // N + wdot[26] -= q; // NH + // d()/d[H2] + dqdci = -k_r * sc[24]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[120] += dqdci; // dwdot[N]/d[H2] + J[122] -= dqdci; // dwdot[NH]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[26]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[152] += dqdci; // dwdot[N]/d[H] + J[154] -= dqdci; // dwdot[NH]/d[H] + // d()/d[N] + dqdci = -k_r * sc[3]; + J[771] += dqdci; // dwdot[H2]/d[N] + J[772] -= dqdci; // dwdot[H]/d[N] + J[792] += dqdci; // dwdot[N]/d[N] + J[794] -= dqdci; // dwdot[NH]/d[N] + // d()/d[NH] + dqdci = +k_f * sc[4]; + J[835] += dqdci; // dwdot[H2]/d[NH] + J[836] -= dqdci; // dwdot[H]/d[NH] + J[856] += dqdci; // dwdot[N]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1016] += dqdT; // dwdot[N]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + + // reaction 78: NH + O <=> H + NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[26]; + k_f = 30000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[4] * sc[11]; + Kc = exp(-g_RT[4] + g_RT[6] - g_RT[11] + g_RT[26]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[26]) + (h_RT[4] + h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[6] -= q; // O + wdot[11] += q; // NO + wdot[26] -= q; // NH + // d()/d[H] + dqdci = -k_r * sc[11]; + J[132] += dqdci; // dwdot[H]/d[H] + J[134] -= dqdci; // dwdot[O]/d[H] + J[139] += dqdci; // dwdot[NO]/d[H] + J[154] -= dqdci; // dwdot[NH]/d[H] + // d()/d[O] + dqdci = +k_f * sc[26]; + J[196] += dqdci; // dwdot[H]/d[O] + J[198] -= dqdci; // dwdot[O]/d[O] + J[203] += dqdci; // dwdot[NO]/d[O] + J[218] -= dqdci; // dwdot[NH]/d[O] + // d()/d[NO] + dqdci = -k_r * sc[4]; + J[356] += dqdci; // dwdot[H]/d[NO] + J[358] -= dqdci; // dwdot[O]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[378] -= dqdci; // dwdot[NH]/d[NO] + // d()/d[NH] + dqdci = +k_f * sc[6]; + J[836] += dqdci; // dwdot[H]/d[NH] + J[838] -= dqdci; // dwdot[O]/d[NH] + J[843] += dqdci; // dwdot[NO]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + + // reaction 79: NH + OH <=> H + HNO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[26]; + k_f = 20000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[4] * sc[14]; + Kc = exp(-g_RT[4] + g_RT[8] - g_RT[14] + g_RT[26]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[26]) + (h_RT[4] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[8] -= q; // OH + wdot[14] += q; // HNO + wdot[26] -= q; // NH + // d()/d[H] + dqdci = -k_r * sc[14]; + J[132] += dqdci; // dwdot[H]/d[H] + J[136] -= dqdci; // dwdot[OH]/d[H] + J[142] += dqdci; // dwdot[HNO]/d[H] + J[154] -= dqdci; // dwdot[NH]/d[H] + // d()/d[OH] + dqdci = +k_f * sc[26]; + J[260] += dqdci; // dwdot[H]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[270] += dqdci; // dwdot[HNO]/d[OH] + J[282] -= dqdci; // dwdot[NH]/d[OH] + // d()/d[HNO] + dqdci = -k_r * sc[4]; + J[452] += dqdci; // dwdot[H]/d[HNO] + J[456] -= dqdci; // dwdot[OH]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[474] -= dqdci; // dwdot[NH]/d[HNO] + // d()/d[NH] + dqdci = +k_f * sc[8]; + J[836] += dqdci; // dwdot[H]/d[NH] + J[840] -= dqdci; // dwdot[OH]/d[NH] + J[846] += dqdci; // dwdot[HNO]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + + // reaction 80: NH + OH <=> H2O + N + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[26]; + k_f = 2000 * exp(1.2 * logT); + dlnkfdT = 1.2 * invT; + // reverse + phi_r = sc[7] * sc[24]; + Kc = exp(-g_RT[7] + g_RT[8] - g_RT[24] + g_RT[26]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[26]) + (h_RT[7] + h_RT[24])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[24] += q; // N + wdot[26] -= q; // NH + // d()/d[H2O] + dqdci = -k_r * sc[24]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[248] += dqdci; // dwdot[N]/d[H2O] + J[250] -= dqdci; // dwdot[NH]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[26]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[280] += dqdci; // dwdot[N]/d[OH] + J[282] -= dqdci; // dwdot[NH]/d[OH] + // d()/d[N] + dqdci = -k_r * sc[7]; + J[775] += dqdci; // dwdot[H2O]/d[N] + J[776] -= dqdci; // dwdot[OH]/d[N] + J[792] += dqdci; // dwdot[N]/d[N] + J[794] -= dqdci; // dwdot[NH]/d[N] + // d()/d[NH] + dqdci = +k_f * sc[8]; + J[839] += dqdci; // dwdot[H2O]/d[NH] + J[840] -= dqdci; // dwdot[OH]/d[NH] + J[856] += dqdci; // dwdot[N]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1016] += dqdT; // dwdot[N]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + + // reaction 81: NH + O2 <=> HNO + O + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[5] * sc[26]; + k_f = 405000 * exp(0.09 * logT - (5369.32182413636) * invT); + dlnkfdT = 0.09 * invT + (5369.32182413636) * invT2; + // reverse + phi_r = sc[6] * sc[14]; + Kc = exp(g_RT[5] - g_RT[6] - g_RT[14] + g_RT[26]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[5] + h_RT[26]) + (h_RT[6] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] -= q; // O2 + wdot[6] += q; // O + wdot[14] += q; // HNO + wdot[26] -= q; // NH + // d()/d[O2] + dqdci = +k_f * sc[26]; + J[165] -= dqdci; // dwdot[O2]/d[O2] + J[166] += dqdci; // dwdot[O]/d[O2] + J[174] += dqdci; // dwdot[HNO]/d[O2] + J[186] -= dqdci; // dwdot[NH]/d[O2] + // d()/d[O] + dqdci = -k_r * sc[14]; + J[197] -= dqdci; // dwdot[O2]/d[O] + J[198] += dqdci; // dwdot[O]/d[O] + J[206] += dqdci; // dwdot[HNO]/d[O] + J[218] -= dqdci; // dwdot[NH]/d[O] + // d()/d[HNO] + dqdci = -k_r * sc[6]; + J[453] -= dqdci; // dwdot[O2]/d[HNO] + J[454] += dqdci; // dwdot[O]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[474] -= dqdci; // dwdot[NH]/d[HNO] + // d()/d[NH] + dqdci = +k_f * sc[5]; + J[837] -= dqdci; // dwdot[O2]/d[NH] + J[838] += dqdci; // dwdot[O]/d[NH] + J[846] += dqdci; // dwdot[HNO]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[998] += dqdT; // dwdot[O]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + + // reaction 82: NH + O2 <=> NO + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[5] * sc[26]; + k_f = 2010000000 * exp(-1.38 * logT - (2853.23849511276) * invT); + dlnkfdT = -1.38 * invT + (2853.23849511276) * invT2; + // reverse + phi_r = sc[8] * sc[11]; + Kc = exp(g_RT[5] - g_RT[8] - g_RT[11] + g_RT[26]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[5] + h_RT[26]) + (h_RT[8] + h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] -= q; // O2 + wdot[8] += q; // OH + wdot[11] += q; // NO + wdot[26] -= q; // NH + // d()/d[O2] + dqdci = +k_f * sc[26]; + J[165] -= dqdci; // dwdot[O2]/d[O2] + J[168] += dqdci; // dwdot[OH]/d[O2] + J[171] += dqdci; // dwdot[NO]/d[O2] + J[186] -= dqdci; // dwdot[NH]/d[O2] + // d()/d[OH] + dqdci = -k_r * sc[11]; + J[261] -= dqdci; // dwdot[O2]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[267] += dqdci; // dwdot[NO]/d[OH] + J[282] -= dqdci; // dwdot[NH]/d[OH] + // d()/d[NO] + dqdci = -k_r * sc[8]; + J[357] -= dqdci; // dwdot[O2]/d[NO] + J[360] += dqdci; // dwdot[OH]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[378] -= dqdci; // dwdot[NH]/d[NO] + // d()/d[NH] + dqdci = +k_f * sc[5]; + J[837] -= dqdci; // dwdot[O2]/d[NH] + J[840] += dqdci; // dwdot[OH]/d[NH] + J[843] += dqdci; // dwdot[NO]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + + // reaction 83: N + NH <=> H + N2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[24] * sc[26]; + k_f = 641000 * exp(0.51 * logT - (10.0643333160944) * invT); + dlnkfdT = 0.51 * invT + (10.0643333160944) * invT2; + // reverse + phi_r = sc[1] * sc[4]; + Kc = exp(-g_RT[1] - g_RT[4] + g_RT[24] + g_RT[26]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[24] + h_RT[26]) + (h_RT[1] + h_RT[4])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[4] += q; // H + wdot[24] -= q; // N + wdot[26] -= q; // NH + // d()/d[N2] + dqdci = -k_r * sc[4]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[36] += dqdci; // dwdot[H]/d[N2] + J[56] -= dqdci; // dwdot[N]/d[N2] + J[58] -= dqdci; // dwdot[NH]/d[N2] + // d()/d[H] + dqdci = -k_r * sc[1]; + J[129] += dqdci; // dwdot[N2]/d[H] + J[132] += dqdci; // dwdot[H]/d[H] + J[152] -= dqdci; // dwdot[N]/d[H] + J[154] -= dqdci; // dwdot[NH]/d[H] + // d()/d[N] + dqdci = +k_f * sc[26]; + J[769] += dqdci; // dwdot[N2]/d[N] + J[772] += dqdci; // dwdot[H]/d[N] + J[792] -= dqdci; // dwdot[N]/d[N] + J[794] -= dqdci; // dwdot[NH]/d[N] + // d()/d[NH] + dqdci = +k_f * sc[24]; + J[833] += dqdci; // dwdot[N2]/d[NH] + J[836] += dqdci; // dwdot[H]/d[NH] + J[856] -= dqdci; // dwdot[N]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[996] += dqdT; // dwdot[H]/dT + J[1016] -= dqdT; // dwdot[N]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + + // reaction 84: NH + NO <=> H + N2O + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[11] * sc[26]; + k_f = 5328000 * exp(0.026 * logT - (-1456.25870917228) * invT); + dlnkfdT = 0.026 * invT + (-1456.25870917228) * invT2; + // reverse + phi_r = sc[4] * sc[12]; + Kc = exp(-g_RT[4] + g_RT[11] - g_RT[12] + g_RT[26]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[11] + h_RT[26]) + (h_RT[4] + h_RT[12])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[11] -= q; // NO + wdot[12] += q; // N2O + wdot[26] -= q; // NH + // d()/d[H] + dqdci = -k_r * sc[12]; + J[132] += dqdci; // dwdot[H]/d[H] + J[139] -= dqdci; // dwdot[NO]/d[H] + J[140] += dqdci; // dwdot[N2O]/d[H] + J[154] -= dqdci; // dwdot[NH]/d[H] + // d()/d[NO] + dqdci = +k_f * sc[26]; + J[356] += dqdci; // dwdot[H]/d[NO] + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[364] += dqdci; // dwdot[N2O]/d[NO] + J[378] -= dqdci; // dwdot[NH]/d[NO] + // d()/d[N2O] + dqdci = -k_r * sc[4]; + J[388] += dqdci; // dwdot[H]/d[N2O] + J[395] -= dqdci; // dwdot[NO]/d[N2O] + J[396] += dqdci; // dwdot[N2O]/d[N2O] + J[410] -= dqdci; // dwdot[NH]/d[N2O] + // d()/d[NH] + dqdci = +k_f * sc[11]; + J[836] += dqdci; // dwdot[H]/d[NH] + J[843] -= dqdci; // dwdot[NO]/d[NH] + J[844] += dqdci; // dwdot[N2O]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1004] += dqdT; // dwdot[N2O]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + + // reaction 85: NH + NO <=> N2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[11] * sc[26]; + k_f = 36350 * exp(0.361 * logT - (-1431.29916254836) * invT); + dlnkfdT = 0.361 * invT + (-1431.29916254836) * invT2; + // reverse + phi_r = sc[1] * sc[8]; + Kc = exp(-g_RT[1] - g_RT[8] + g_RT[11] + g_RT[26]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[11] + h_RT[26]) + (h_RT[1] + h_RT[8])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[8] += q; // OH + wdot[11] -= q; // NO + wdot[26] -= q; // NH + // d()/d[N2] + dqdci = -k_r * sc[8]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[40] += dqdci; // dwdot[OH]/d[N2] + J[43] -= dqdci; // dwdot[NO]/d[N2] + J[58] -= dqdci; // dwdot[NH]/d[N2] + // d()/d[OH] + dqdci = -k_r * sc[1]; + J[257] += dqdci; // dwdot[N2]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[267] -= dqdci; // dwdot[NO]/d[OH] + J[282] -= dqdci; // dwdot[NH]/d[OH] + // d()/d[NO] + dqdci = +k_f * sc[26]; + J[353] += dqdci; // dwdot[N2]/d[NO] + J[360] += dqdci; // dwdot[OH]/d[NO] + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[378] -= dqdci; // dwdot[NH]/d[NO] + // d()/d[NH] + dqdci = +k_f * sc[11]; + J[833] += dqdci; // dwdot[N2]/d[NH] + J[840] += dqdci; // dwdot[OH]/d[NH] + J[843] -= dqdci; // dwdot[NO]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + + // reaction 86: NH + NO2 <=> N2O + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[13] * sc[26]; + k_f = 4100000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[8] * sc[12]; + Kc = exp(-g_RT[8] - g_RT[12] + g_RT[13] + g_RT[26]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[13] + h_RT[26]) + (h_RT[8] + h_RT[12])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[8] += q; // OH + wdot[12] += q; // N2O + wdot[13] -= q; // NO2 + wdot[26] -= q; // NH + // d()/d[OH] + dqdci = -k_r * sc[12]; + J[264] += dqdci; // dwdot[OH]/d[OH] + J[268] += dqdci; // dwdot[N2O]/d[OH] + J[269] -= dqdci; // dwdot[NO2]/d[OH] + J[282] -= dqdci; // dwdot[NH]/d[OH] + // d()/d[N2O] + dqdci = -k_r * sc[8]; + J[392] += dqdci; // dwdot[OH]/d[N2O] + J[396] += dqdci; // dwdot[N2O]/d[N2O] + J[397] -= dqdci; // dwdot[NO2]/d[N2O] + J[410] -= dqdci; // dwdot[NH]/d[N2O] + // d()/d[NO2] + dqdci = +k_f * sc[26]; + J[424] += dqdci; // dwdot[OH]/d[NO2] + J[428] += dqdci; // dwdot[N2O]/d[NO2] + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[442] -= dqdci; // dwdot[NH]/d[NO2] + // d()/d[NH] + dqdci = +k_f * sc[13]; + J[840] += dqdci; // dwdot[OH]/d[NH] + J[844] += dqdci; // dwdot[N2O]/d[NH] + J[845] -= dqdci; // dwdot[NO2]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1004] += dqdT; // dwdot[N2O]/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + + // reaction 87: NH + NO2 <=> HNO + NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[13] * sc[26]; + k_f = 5900000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[11] * sc[14]; + Kc = exp(-g_RT[11] + g_RT[13] - g_RT[14] + g_RT[26]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[13] + h_RT[26]) + (h_RT[11] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[11] += q; // NO + wdot[13] -= q; // NO2 + wdot[14] += q; // HNO + wdot[26] -= q; // NH + // d()/d[NO] + dqdci = -k_r * sc[14]; + J[363] += dqdci; // dwdot[NO]/d[NO] + J[365] -= dqdci; // dwdot[NO2]/d[NO] + J[366] += dqdci; // dwdot[HNO]/d[NO] + J[378] -= dqdci; // dwdot[NH]/d[NO] + // d()/d[NO2] + dqdci = +k_f * sc[26]; + J[427] += dqdci; // dwdot[NO]/d[NO2] + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[430] += dqdci; // dwdot[HNO]/d[NO2] + J[442] -= dqdci; // dwdot[NH]/d[NO2] + // d()/d[HNO] + dqdci = -k_r * sc[11]; + J[459] += dqdci; // dwdot[NO]/d[HNO] + J[461] -= dqdci; // dwdot[NO2]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[474] -= dqdci; // dwdot[NH]/d[HNO] + // d()/d[NH] + dqdci = +k_f * sc[13]; + J[843] += dqdci; // dwdot[NO]/d[NH] + J[845] -= dqdci; // dwdot[NO2]/d[NH] + J[846] += dqdci; // dwdot[HNO]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + // d()/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + + // reaction 88: N + OH <=> H + NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[24]; + k_f = 28300000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[4] * sc[11]; + Kc = exp(-g_RT[4] + g_RT[8] - g_RT[11] + g_RT[24]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[24]) + (h_RT[4] + h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[8] -= q; // OH + wdot[11] += q; // NO + wdot[24] -= q; // N + // d()/d[H] + dqdci = -k_r * sc[11]; + J[132] += dqdci; // dwdot[H]/d[H] + J[136] -= dqdci; // dwdot[OH]/d[H] + J[139] += dqdci; // dwdot[NO]/d[H] + J[152] -= dqdci; // dwdot[N]/d[H] + // d()/d[OH] + dqdci = +k_f * sc[24]; + J[260] += dqdci; // dwdot[H]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[267] += dqdci; // dwdot[NO]/d[OH] + J[280] -= dqdci; // dwdot[N]/d[OH] + // d()/d[NO] + dqdci = -k_r * sc[4]; + J[356] += dqdci; // dwdot[H]/d[NO] + J[360] -= dqdci; // dwdot[OH]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[376] -= dqdci; // dwdot[N]/d[NO] + // d()/d[N] + dqdci = +k_f * sc[8]; + J[772] += dqdci; // dwdot[H]/d[N] + J[776] -= dqdci; // dwdot[OH]/d[N] + J[779] += dqdci; // dwdot[NO]/d[N] + J[792] -= dqdci; // dwdot[N]/d[N] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1016] -= dqdT; // dwdot[N]/dT + + // reaction 89: N + O2 <=> NO + O + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[5] * sc[24]; + k_f = 9027 * exp(1 * logT - (3270.90832773068) * invT); + dlnkfdT = 1 * invT + (3270.90832773068) * invT2; + // reverse + phi_r = sc[6] * sc[11]; + Kc = exp(g_RT[5] - g_RT[6] - g_RT[11] + g_RT[24]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[5] + h_RT[24]) + (h_RT[6] + h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] -= q; // O2 + wdot[6] += q; // O + wdot[11] += q; // NO + wdot[24] -= q; // N + // d()/d[O2] + dqdci = +k_f * sc[24]; + J[165] -= dqdci; // dwdot[O2]/d[O2] + J[166] += dqdci; // dwdot[O]/d[O2] + J[171] += dqdci; // dwdot[NO]/d[O2] + J[184] -= dqdci; // dwdot[N]/d[O2] + // d()/d[O] + dqdci = -k_r * sc[11]; + J[197] -= dqdci; // dwdot[O2]/d[O] + J[198] += dqdci; // dwdot[O]/d[O] + J[203] += dqdci; // dwdot[NO]/d[O] + J[216] -= dqdci; // dwdot[N]/d[O] + // d()/d[NO] + dqdci = -k_r * sc[6]; + J[357] -= dqdci; // dwdot[O2]/d[NO] + J[358] += dqdci; // dwdot[O]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[376] -= dqdci; // dwdot[N]/d[NO] + // d()/d[N] + dqdci = +k_f * sc[5]; + J[773] -= dqdci; // dwdot[O2]/d[N] + J[774] += dqdci; // dwdot[O]/d[N] + J[779] += dqdci; // dwdot[NO]/d[N] + J[792] -= dqdci; // dwdot[N]/d[N] + // d()/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[998] += dqdT; // dwdot[O]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1016] -= dqdT; // dwdot[N]/dT + + // reaction 90: N + NO <=> N2 + O + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[11] * sc[24]; + k_f = 42800000 * exp(-(790.05016531341) * invT); + dlnkfdT = (790.05016531341) * invT2; + // reverse + phi_r = sc[1] * sc[6]; + Kc = exp(-g_RT[1] - g_RT[6] + g_RT[11] + g_RT[24]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[11] + h_RT[24]) + (h_RT[1] + h_RT[6])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[6] += q; // O + wdot[11] -= q; // NO + wdot[24] -= q; // N + // d()/d[N2] + dqdci = -k_r * sc[6]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[38] += dqdci; // dwdot[O]/d[N2] + J[43] -= dqdci; // dwdot[NO]/d[N2] + J[56] -= dqdci; // dwdot[N]/d[N2] + // d()/d[O] + dqdci = -k_r * sc[1]; + J[193] += dqdci; // dwdot[N2]/d[O] + J[198] += dqdci; // dwdot[O]/d[O] + J[203] -= dqdci; // dwdot[NO]/d[O] + J[216] -= dqdci; // dwdot[N]/d[O] + // d()/d[NO] + dqdci = +k_f * sc[24]; + J[353] += dqdci; // dwdot[N2]/d[NO] + J[358] += dqdci; // dwdot[O]/d[NO] + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[376] -= dqdci; // dwdot[N]/d[NO] + // d()/d[N] + dqdci = +k_f * sc[11]; + J[769] += dqdci; // dwdot[N2]/d[N] + J[774] += dqdci; // dwdot[O]/d[N] + J[779] -= dqdci; // dwdot[NO]/d[N] + J[792] -= dqdci; // dwdot[N]/d[N] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[998] += dqdT; // dwdot[O]/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1016] -= dqdT; // dwdot[N]/dT + + // reaction 91: N2H4 <=> H2 + H2NN + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[23]; + k_f = 5.65145496101273e+39 * + exp(-8.3585749186206 * logT - (34882.1236135086) * invT); + dlnkfdT = -8.3585749186206 * invT + (34882.1236135086) * invT2; + // reverse + phi_r = sc[3] * sc[19]; + Kc = refC * exp(-g_RT[3] - g_RT[19] + g_RT[23]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[23]) + (h_RT[3] + h_RT[19]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[19] += q; // H2NN + wdot[23] -= q; // N2H4 + // d()/d[H2] + dqdci = -k_r * sc[19]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[115] += dqdci; // dwdot[H2NN]/d[H2] + J[119] -= dqdci; // dwdot[N2H4]/d[H2] + // d()/d[H2NN] + dqdci = -k_r * sc[3]; + J[611] += dqdci; // dwdot[H2]/d[H2NN] + J[627] += dqdci; // dwdot[H2NN]/d[H2NN] + J[631] -= dqdci; // dwdot[N2H4]/d[H2NN] + // d()/d[N2H4] + dqdci = +k_f; + J[739] += dqdci; // dwdot[H2]/d[N2H4] + J[755] += dqdci; // dwdot[H2NN]/d[N2H4] + J[759] -= dqdci; // dwdot[N2H4]/d[N2H4] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[1011] += dqdT; // dwdot[H2NN]/dT + J[1015] -= dqdT; // dwdot[N2H4]/dT + + // reaction 92: H + N2H4 <=> H2 + N2H3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[23]; + k_f = 960 * exp(1.5 * logT - (2434.71319416298) * invT); + dlnkfdT = 1.5 * invT + (2434.71319416298) * invT2; + // reverse + phi_r = sc[3] * sc[30]; + Kc = exp(-g_RT[3] + g_RT[4] + g_RT[23] - g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[23]) + (h_RT[3] + h_RT[30])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[23] -= q; // N2H4 + wdot[30] += q; // N2H3 + // d()/d[H2] + dqdci = -k_r * sc[30]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[119] -= dqdci; // dwdot[N2H4]/d[H2] + J[126] += dqdci; // dwdot[N2H3]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[23]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[151] -= dqdci; // dwdot[N2H4]/d[H] + J[158] += dqdci; // dwdot[N2H3]/d[H] + // d()/d[N2H4] + dqdci = +k_f * sc[4]; + J[739] += dqdci; // dwdot[H2]/d[N2H4] + J[740] -= dqdci; // dwdot[H]/d[N2H4] + J[759] -= dqdci; // dwdot[N2H4]/d[N2H4] + J[766] += dqdci; // dwdot[N2H3]/d[N2H4] + // d()/d[N2H3] + dqdci = -k_r * sc[3]; + J[963] += dqdci; // dwdot[H2]/d[N2H3] + J[964] -= dqdci; // dwdot[H]/d[N2H3] + J[983] -= dqdci; // dwdot[N2H4]/d[N2H3] + J[990] += dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1015] -= dqdT; // dwdot[N2H4]/dT + J[1022] += dqdT; // dwdot[N2H3]/dT + + // reaction 93: N2H4 + O <=> N2H3 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[23]; + k_f = 670 * exp(1.5 * logT - (1434.821679209) * invT); + dlnkfdT = 1.5 * invT + (1434.821679209) * invT2; + // reverse + phi_r = sc[8] * sc[30]; + Kc = exp(g_RT[6] - g_RT[8] + g_RT[23] - g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[23]) + (h_RT[8] + h_RT[30])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[23] -= q; // N2H4 + wdot[30] += q; // N2H3 + // d()/d[O] + dqdci = +k_f * sc[23]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[215] -= dqdci; // dwdot[N2H4]/d[O] + J[222] += dqdci; // dwdot[N2H3]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[30]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[279] -= dqdci; // dwdot[N2H4]/d[OH] + J[286] += dqdci; // dwdot[N2H3]/d[OH] + // d()/d[N2H4] + dqdci = +k_f * sc[6]; + J[742] -= dqdci; // dwdot[O]/d[N2H4] + J[744] += dqdci; // dwdot[OH]/d[N2H4] + J[759] -= dqdci; // dwdot[N2H4]/d[N2H4] + J[766] += dqdci; // dwdot[N2H3]/d[N2H4] + // d()/d[N2H3] + dqdci = -k_r * sc[8]; + J[966] -= dqdci; // dwdot[O]/d[N2H3] + J[968] += dqdci; // dwdot[OH]/d[N2H3] + J[983] -= dqdci; // dwdot[N2H4]/d[N2H3] + J[990] += dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1015] -= dqdT; // dwdot[N2H4]/dT + J[1022] += dqdT; // dwdot[N2H3]/dT + + // reaction 94: N2H4 + O <=> H2O + N2H2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[23]; + k_f = 84900000 * exp(-(603.859998965664) * invT); + dlnkfdT = (603.859998965664) * invT2; + // reverse + phi_r = sc[7] * sc[18]; + Kc = exp(g_RT[6] - g_RT[7] - g_RT[18] + g_RT[23]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[23]) + (h_RT[7] + h_RT[18])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[7] += q; // H2O + wdot[18] += q; // N2H2 + wdot[23] -= q; // N2H4 + // d()/d[O] + dqdci = +k_f * sc[23]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[199] += dqdci; // dwdot[H2O]/d[O] + J[210] += dqdci; // dwdot[N2H2]/d[O] + J[215] -= dqdci; // dwdot[N2H4]/d[O] + // d()/d[H2O] + dqdci = -k_r * sc[18]; + J[230] -= dqdci; // dwdot[O]/d[H2O] + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[242] += dqdci; // dwdot[N2H2]/d[H2O] + J[247] -= dqdci; // dwdot[N2H4]/d[H2O] + // d()/d[N2H2] + dqdci = -k_r * sc[7]; + J[582] -= dqdci; // dwdot[O]/d[N2H2] + J[583] += dqdci; // dwdot[H2O]/d[N2H2] + J[594] += dqdci; // dwdot[N2H2]/d[N2H2] + J[599] -= dqdci; // dwdot[N2H4]/d[N2H2] + // d()/d[N2H4] + dqdci = +k_f * sc[6]; + J[742] -= dqdci; // dwdot[O]/d[N2H4] + J[743] += dqdci; // dwdot[H2O]/d[N2H4] + J[754] += dqdci; // dwdot[N2H2]/d[N2H4] + J[759] -= dqdci; // dwdot[N2H4]/d[N2H4] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1010] += dqdT; // dwdot[N2H2]/dT + J[1015] -= dqdT; // dwdot[N2H4]/dT + + // reaction 95: N2H4 + OH <=> H2O + N2H3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[23]; + k_f = 13000000 * exp(-(-160.022899725901) * invT); + dlnkfdT = (-160.022899725901) * invT2; + // reverse + phi_r = sc[7] * sc[30]; + Kc = exp(-g_RT[7] + g_RT[8] + g_RT[23] - g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[23]) + (h_RT[7] + h_RT[30])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[23] -= q; // N2H4 + wdot[30] += q; // N2H3 + // d()/d[H2O] + dqdci = -k_r * sc[30]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[247] -= dqdci; // dwdot[N2H4]/d[H2O] + J[254] += dqdci; // dwdot[N2H3]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[23]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[279] -= dqdci; // dwdot[N2H4]/d[OH] + J[286] += dqdci; // dwdot[N2H3]/d[OH] + // d()/d[N2H4] + dqdci = +k_f * sc[8]; + J[743] += dqdci; // dwdot[H2O]/d[N2H4] + J[744] -= dqdci; // dwdot[OH]/d[N2H4] + J[759] -= dqdci; // dwdot[N2H4]/d[N2H4] + J[766] += dqdci; // dwdot[N2H3]/d[N2H4] + // d()/d[N2H3] + dqdci = -k_r * sc[7]; + J[967] += dqdci; // dwdot[H2O]/d[N2H3] + J[968] -= dqdci; // dwdot[OH]/d[N2H3] + J[983] -= dqdci; // dwdot[N2H4]/d[N2H3] + J[990] += dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1015] -= dqdT; // dwdot[N2H4]/dT + J[1022] += dqdT; // dwdot[N2H3]/dT + + // reaction 96: N2H4 + NH2 <=> N2H3 + NH3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[23] * sc[28]; + k_f = 3.7 * exp(1.94 * logT - (820.243165261693) * invT); + dlnkfdT = 1.94 * invT + (820.243165261693) * invT2; + // reverse + phi_r = sc[22] * sc[30]; + Kc = exp(-g_RT[22] + g_RT[23] + g_RT[28] - g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[23] + h_RT[28]) + (h_RT[22] + h_RT[30])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[22] += q; // NH3 + wdot[23] -= q; // N2H4 + wdot[28] -= q; // NH2 + wdot[30] += q; // N2H3 + // d()/d[NH3] + dqdci = -k_r * sc[30]; + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[727] -= dqdci; // dwdot[N2H4]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + J[734] += dqdci; // dwdot[N2H3]/d[NH3] + // d()/d[N2H4] + dqdci = +k_f * sc[28]; + J[758] += dqdci; // dwdot[NH3]/d[N2H4] + J[759] -= dqdci; // dwdot[N2H4]/d[N2H4] + J[764] -= dqdci; // dwdot[NH2]/d[N2H4] + J[766] += dqdci; // dwdot[N2H3]/d[N2H4] + // d()/d[NH2] + dqdci = +k_f * sc[23]; + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[919] -= dqdci; // dwdot[N2H4]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + J[926] += dqdci; // dwdot[N2H3]/d[NH2] + // d()/d[N2H3] + dqdci = -k_r * sc[22]; + J[982] += dqdci; // dwdot[NH3]/d[N2H3] + J[983] -= dqdci; // dwdot[N2H4]/d[N2H3] + J[988] -= dqdci; // dwdot[NH2]/d[N2H3] + J[990] += dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1015] -= dqdT; // dwdot[N2H4]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + J[1022] += dqdT; // dwdot[N2H3]/dT + + // reaction 97: N2H4 + NO <=> HNO + N2H3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[11] * sc[23]; + k_f = 6e-05 * exp(3.16 * logT - (15521.7180567466) * invT); + dlnkfdT = 3.16 * invT + (15521.7180567466) * invT2; + // reverse + phi_r = sc[14] * sc[30]; + Kc = exp(g_RT[11] - g_RT[14] + g_RT[23] - g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[11] + h_RT[23]) + (h_RT[14] + h_RT[30])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[11] -= q; // NO + wdot[14] += q; // HNO + wdot[23] -= q; // N2H4 + wdot[30] += q; // N2H3 + // d()/d[NO] + dqdci = +k_f * sc[23]; + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[366] += dqdci; // dwdot[HNO]/d[NO] + J[375] -= dqdci; // dwdot[N2H4]/d[NO] + J[382] += dqdci; // dwdot[N2H3]/d[NO] + // d()/d[HNO] + dqdci = -k_r * sc[30]; + J[459] -= dqdci; // dwdot[NO]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[471] -= dqdci; // dwdot[N2H4]/d[HNO] + J[478] += dqdci; // dwdot[N2H3]/d[HNO] + // d()/d[N2H4] + dqdci = +k_f * sc[11]; + J[747] -= dqdci; // dwdot[NO]/d[N2H4] + J[750] += dqdci; // dwdot[HNO]/d[N2H4] + J[759] -= dqdci; // dwdot[N2H4]/d[N2H4] + J[766] += dqdci; // dwdot[N2H3]/d[N2H4] + // d()/d[N2H3] + dqdci = -k_r * sc[14]; + J[971] -= dqdci; // dwdot[NO]/d[N2H3] + J[974] += dqdci; // dwdot[HNO]/d[N2H3] + J[983] -= dqdci; // dwdot[N2H4]/d[N2H3] + J[990] += dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1015] -= dqdT; // dwdot[N2H4]/dT + J[1022] += dqdT; // dwdot[N2H3]/dT + + // reaction 98: N2H4 + NO2 <=> HONO + N2H3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[13] * sc[23]; + k_f = 8.2e-05 * exp(3.13 * logT - (4458.49965902982) * invT); + dlnkfdT = 3.13 * invT + (4458.49965902982) * invT2; + // reverse + phi_r = sc[16] * sc[30]; + Kc = exp(g_RT[13] - g_RT[16] + g_RT[23] - g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[13] + h_RT[23]) + (h_RT[16] + h_RT[30])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[13] -= q; // NO2 + wdot[16] += q; // HONO + wdot[23] -= q; // N2H4 + wdot[30] += q; // N2H3 + // d()/d[NO2] + dqdci = +k_f * sc[23]; + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[432] += dqdci; // dwdot[HONO]/d[NO2] + J[439] -= dqdci; // dwdot[N2H4]/d[NO2] + J[446] += dqdci; // dwdot[N2H3]/d[NO2] + // d()/d[HONO] + dqdci = -k_r * sc[30]; + J[525] -= dqdci; // dwdot[NO2]/d[HONO] + J[528] += dqdci; // dwdot[HONO]/d[HONO] + J[535] -= dqdci; // dwdot[N2H4]/d[HONO] + J[542] += dqdci; // dwdot[N2H3]/d[HONO] + // d()/d[N2H4] + dqdci = +k_f * sc[13]; + J[749] -= dqdci; // dwdot[NO2]/d[N2H4] + J[752] += dqdci; // dwdot[HONO]/d[N2H4] + J[759] -= dqdci; // dwdot[N2H4]/d[N2H4] + J[766] += dqdci; // dwdot[N2H3]/d[N2H4] + // d()/d[N2H3] + dqdci = -k_r * sc[16]; + J[973] -= dqdci; // dwdot[NO2]/d[N2H3] + J[976] += dqdci; // dwdot[HONO]/d[N2H3] + J[983] -= dqdci; // dwdot[N2H4]/d[N2H3] + J[990] += dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1008] += dqdT; // dwdot[HONO]/dT + J[1015] -= dqdT; // dwdot[N2H4]/dT + J[1022] += dqdT; // dwdot[N2H3]/dT + + // reaction 99: N2H4 + NO2 <=> HNO2 + N2H3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[13] * sc[23]; + k_f = 2.4e-08 * exp(4.14 * logT - (3998.5596264843) * invT); + dlnkfdT = 4.14 * invT + (3998.5596264843) * invT2; + // reverse + phi_r = sc[15] * sc[30]; + Kc = exp(g_RT[13] - g_RT[15] + g_RT[23] - g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[13] + h_RT[23]) + (h_RT[15] + h_RT[30])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[13] -= q; // NO2 + wdot[15] += q; // HNO2 + wdot[23] -= q; // N2H4 + wdot[30] += q; // N2H3 + // d()/d[NO2] + dqdci = +k_f * sc[23]; + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[431] += dqdci; // dwdot[HNO2]/d[NO2] + J[439] -= dqdci; // dwdot[N2H4]/d[NO2] + J[446] += dqdci; // dwdot[N2H3]/d[NO2] + // d()/d[HNO2] + dqdci = -k_r * sc[30]; + J[493] -= dqdci; // dwdot[NO2]/d[HNO2] + J[495] += dqdci; // dwdot[HNO2]/d[HNO2] + J[503] -= dqdci; // dwdot[N2H4]/d[HNO2] + J[510] += dqdci; // dwdot[N2H3]/d[HNO2] + // d()/d[N2H4] + dqdci = +k_f * sc[13]; + J[749] -= dqdci; // dwdot[NO2]/d[N2H4] + J[751] += dqdci; // dwdot[HNO2]/d[N2H4] + J[759] -= dqdci; // dwdot[N2H4]/d[N2H4] + J[766] += dqdci; // dwdot[N2H3]/d[N2H4] + // d()/d[N2H3] + dqdci = -k_r * sc[15]; + J[973] -= dqdci; // dwdot[NO2]/d[N2H3] + J[975] += dqdci; // dwdot[HNO2]/d[N2H3] + J[983] -= dqdci; // dwdot[N2H4]/d[N2H3] + J[990] += dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1007] += dqdT; // dwdot[HNO2]/dT + J[1015] -= dqdT; // dwdot[N2H4]/dT + J[1022] += dqdT; // dwdot[N2H3]/dT + + // reaction 100: N2H3 <=> H + N2H2 + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[30]; + k_f = 3.40662040294527e+47 * + exp(-10.3752552116966 * logT - (34695.7112236119) * invT); + dlnkfdT = -10.3752552116966 * invT + (34695.7112236119) * invT2; + // reverse + phi_r = sc[4] * sc[18]; + Kc = refC * exp(-g_RT[4] - g_RT[18] + g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[30]) + (h_RT[4] + h_RT[18]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[18] += q; // N2H2 + wdot[30] -= q; // N2H3 + // d()/d[H] + dqdci = -k_r * sc[18]; + J[132] += dqdci; // dwdot[H]/d[H] + J[146] += dqdci; // dwdot[N2H2]/d[H] + J[158] -= dqdci; // dwdot[N2H3]/d[H] + // d()/d[N2H2] + dqdci = -k_r * sc[4]; + J[580] += dqdci; // dwdot[H]/d[N2H2] + J[594] += dqdci; // dwdot[N2H2]/d[N2H2] + J[606] -= dqdci; // dwdot[N2H3]/d[N2H2] + // d()/d[N2H3] + dqdci = +k_f; + J[964] += dqdci; // dwdot[H]/d[N2H3] + J[978] += dqdci; // dwdot[N2H2]/d[N2H3] + J[990] -= dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1010] += dqdT; // dwdot[N2H2]/dT + J[1022] -= dqdT; // dwdot[N2H3]/dT + + // reaction 101: H + N2H3 <=> H2 + N2H2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[30]; + k_f = 240 * exp(1.5 * logT); + dlnkfdT = 1.5 * invT; + // reverse + phi_r = sc[3] * sc[18]; + Kc = exp(-g_RT[3] + g_RT[4] - g_RT[18] + g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[30]) + (h_RT[3] + h_RT[18])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[18] += q; // N2H2 + wdot[30] -= q; // N2H3 + // d()/d[H2] + dqdci = -k_r * sc[18]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[114] += dqdci; // dwdot[N2H2]/d[H2] + J[126] -= dqdci; // dwdot[N2H3]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[30]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[146] += dqdci; // dwdot[N2H2]/d[H] + J[158] -= dqdci; // dwdot[N2H3]/d[H] + // d()/d[N2H2] + dqdci = -k_r * sc[3]; + J[579] += dqdci; // dwdot[H2]/d[N2H2] + J[580] -= dqdci; // dwdot[H]/d[N2H2] + J[594] += dqdci; // dwdot[N2H2]/d[N2H2] + J[606] -= dqdci; // dwdot[N2H3]/d[N2H2] + // d()/d[N2H3] + dqdci = +k_f * sc[4]; + J[963] += dqdci; // dwdot[H2]/d[N2H3] + J[964] -= dqdci; // dwdot[H]/d[N2H3] + J[978] += dqdci; // dwdot[N2H2]/d[N2H3] + J[990] -= dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1010] += dqdT; // dwdot[N2H2]/dT + J[1022] -= dqdT; // dwdot[N2H3]/dT + + // reaction 102: N2H3 + O <=> HNO + NH2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[30]; + k_f = 30000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[14] * sc[28]; + Kc = exp(g_RT[6] - g_RT[14] - g_RT[28] + g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[30]) + (h_RT[14] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[14] += q; // HNO + wdot[28] += q; // NH2 + wdot[30] -= q; // N2H3 + // d()/d[O] + dqdci = +k_f * sc[30]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[206] += dqdci; // dwdot[HNO]/d[O] + J[220] += dqdci; // dwdot[NH2]/d[O] + J[222] -= dqdci; // dwdot[N2H3]/d[O] + // d()/d[HNO] + dqdci = -k_r * sc[28]; + J[454] -= dqdci; // dwdot[O]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[476] += dqdci; // dwdot[NH2]/d[HNO] + J[478] -= dqdci; // dwdot[N2H3]/d[HNO] + // d()/d[NH2] + dqdci = -k_r * sc[14]; + J[902] -= dqdci; // dwdot[O]/d[NH2] + J[910] += dqdci; // dwdot[HNO]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + J[926] -= dqdci; // dwdot[N2H3]/d[NH2] + // d()/d[N2H3] + dqdci = +k_f * sc[6]; + J[966] -= dqdci; // dwdot[O]/d[N2H3] + J[974] += dqdci; // dwdot[HNO]/d[N2H3] + J[988] += dqdci; // dwdot[NH2]/d[N2H3] + J[990] -= dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + J[1022] -= dqdT; // dwdot[N2H3]/dT + + // reaction 103: N2H3 + O <=> N2H2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[30]; + k_f = 170 * exp(1.5 * logT - (-324.826357776947) * invT); + dlnkfdT = 1.5 * invT + (-324.826357776947) * invT2; + // reverse + phi_r = sc[8] * sc[18]; + Kc = exp(g_RT[6] - g_RT[8] - g_RT[18] + g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[30]) + (h_RT[8] + h_RT[18])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[18] += q; // N2H2 + wdot[30] -= q; // N2H3 + // d()/d[O] + dqdci = +k_f * sc[30]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[210] += dqdci; // dwdot[N2H2]/d[O] + J[222] -= dqdci; // dwdot[N2H3]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[18]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[274] += dqdci; // dwdot[N2H2]/d[OH] + J[286] -= dqdci; // dwdot[N2H3]/d[OH] + // d()/d[N2H2] + dqdci = -k_r * sc[8]; + J[582] -= dqdci; // dwdot[O]/d[N2H2] + J[584] += dqdci; // dwdot[OH]/d[N2H2] + J[594] += dqdci; // dwdot[N2H2]/d[N2H2] + J[606] -= dqdci; // dwdot[N2H3]/d[N2H2] + // d()/d[N2H3] + dqdci = +k_f * sc[6]; + J[966] -= dqdci; // dwdot[O]/d[N2H3] + J[968] += dqdci; // dwdot[OH]/d[N2H3] + J[978] += dqdci; // dwdot[N2H2]/d[N2H3] + J[990] -= dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1010] += dqdT; // dwdot[N2H2]/dT + J[1022] -= dqdT; // dwdot[N2H3]/dT + + // reaction 104: N2H3 + OH <=> H2O + N2H2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[30]; + k_f = 1.2 * exp(2 * logT - (-599.632978972904) * invT); + dlnkfdT = 2 * invT + (-599.632978972904) * invT2; + // reverse + phi_r = sc[7] * sc[18]; + Kc = exp(-g_RT[7] + g_RT[8] - g_RT[18] + g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[30]) + (h_RT[7] + h_RT[18])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[18] += q; // N2H2 + wdot[30] -= q; // N2H3 + // d()/d[H2O] + dqdci = -k_r * sc[18]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[242] += dqdci; // dwdot[N2H2]/d[H2O] + J[254] -= dqdci; // dwdot[N2H3]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[30]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[274] += dqdci; // dwdot[N2H2]/d[OH] + J[286] -= dqdci; // dwdot[N2H3]/d[OH] + // d()/d[N2H2] + dqdci = -k_r * sc[7]; + J[583] += dqdci; // dwdot[H2O]/d[N2H2] + J[584] -= dqdci; // dwdot[OH]/d[N2H2] + J[594] += dqdci; // dwdot[N2H2]/d[N2H2] + J[606] -= dqdci; // dwdot[N2H3]/d[N2H2] + // d()/d[N2H3] + dqdci = +k_f * sc[8]; + J[967] += dqdci; // dwdot[H2O]/d[N2H3] + J[968] -= dqdci; // dwdot[OH]/d[N2H3] + J[978] += dqdci; // dwdot[N2H2]/d[N2H3] + J[990] -= dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1010] += dqdT; // dwdot[N2H2]/dT + J[1022] -= dqdT; // dwdot[N2H3]/dT + + // reaction 105: N2H3 + OH <=> H2NN + H2O + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[30]; + k_f = 30000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[7] * sc[19]; + Kc = exp(-g_RT[7] + g_RT[8] - g_RT[19] + g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[30]) + (h_RT[7] + h_RT[19])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[19] += q; // H2NN + wdot[30] -= q; // N2H3 + // d()/d[H2O] + dqdci = -k_r * sc[19]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[243] += dqdci; // dwdot[H2NN]/d[H2O] + J[254] -= dqdci; // dwdot[N2H3]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[30]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[275] += dqdci; // dwdot[H2NN]/d[OH] + J[286] -= dqdci; // dwdot[N2H3]/d[OH] + // d()/d[H2NN] + dqdci = -k_r * sc[7]; + J[615] += dqdci; // dwdot[H2O]/d[H2NN] + J[616] -= dqdci; // dwdot[OH]/d[H2NN] + J[627] += dqdci; // dwdot[H2NN]/d[H2NN] + J[638] -= dqdci; // dwdot[N2H3]/d[H2NN] + // d()/d[N2H3] + dqdci = +k_f * sc[8]; + J[967] += dqdci; // dwdot[H2O]/d[N2H3] + J[968] -= dqdci; // dwdot[OH]/d[N2H3] + J[979] += dqdci; // dwdot[H2NN]/d[N2H3] + J[990] -= dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1011] += dqdT; // dwdot[H2NN]/dT + J[1022] -= dqdT; // dwdot[N2H3]/dT + + // reaction 106: N2H3 + NH2 <=> N2H2 + NH3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[28] * sc[30]; + k_f = 0.92 * exp(1.94 * logT - (-579.957207339939) * invT); + dlnkfdT = 1.94 * invT + (-579.957207339939) * invT2; + // reverse + phi_r = sc[18] * sc[22]; + Kc = exp(-g_RT[18] - g_RT[22] + g_RT[28] + g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[28] + h_RT[30]) + (h_RT[18] + h_RT[22])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[18] += q; // N2H2 + wdot[22] += q; // NH3 + wdot[28] -= q; // NH2 + wdot[30] -= q; // N2H3 + // d()/d[N2H2] + dqdci = -k_r * sc[22]; + J[594] += dqdci; // dwdot[N2H2]/d[N2H2] + J[598] += dqdci; // dwdot[NH3]/d[N2H2] + J[604] -= dqdci; // dwdot[NH2]/d[N2H2] + J[606] -= dqdci; // dwdot[N2H3]/d[N2H2] + // d()/d[NH3] + dqdci = -k_r * sc[18]; + J[722] += dqdci; // dwdot[N2H2]/d[NH3] + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + J[734] -= dqdci; // dwdot[N2H3]/d[NH3] + // d()/d[NH2] + dqdci = +k_f * sc[30]; + J[914] += dqdci; // dwdot[N2H2]/d[NH2] + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + J[926] -= dqdci; // dwdot[N2H3]/d[NH2] + // d()/d[N2H3] + dqdci = +k_f * sc[28]; + J[978] += dqdci; // dwdot[N2H2]/d[N2H3] + J[982] += dqdci; // dwdot[NH3]/d[N2H3] + J[988] -= dqdci; // dwdot[NH2]/d[N2H3] + J[990] -= dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[1010] += dqdT; // dwdot[N2H2]/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + J[1022] -= dqdT; // dwdot[N2H3]/dT + + // reaction 107: N2H3 + NH2 <=> H2NN + NH3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[28] * sc[30]; + k_f = 30000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[19] * sc[22]; + Kc = exp(-g_RT[19] - g_RT[22] + g_RT[28] + g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[28] + h_RT[30]) + (h_RT[19] + h_RT[22])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[19] += q; // H2NN + wdot[22] += q; // NH3 + wdot[28] -= q; // NH2 + wdot[30] -= q; // N2H3 + // d()/d[H2NN] + dqdci = -k_r * sc[22]; + J[627] += dqdci; // dwdot[H2NN]/d[H2NN] + J[630] += dqdci; // dwdot[NH3]/d[H2NN] + J[636] -= dqdci; // dwdot[NH2]/d[H2NN] + J[638] -= dqdci; // dwdot[N2H3]/d[H2NN] + // d()/d[NH3] + dqdci = -k_r * sc[19]; + J[723] += dqdci; // dwdot[H2NN]/d[NH3] + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + J[734] -= dqdci; // dwdot[N2H3]/d[NH3] + // d()/d[NH2] + dqdci = +k_f * sc[30]; + J[915] += dqdci; // dwdot[H2NN]/d[NH2] + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + J[926] -= dqdci; // dwdot[N2H3]/d[NH2] + // d()/d[N2H3] + dqdci = +k_f * sc[28]; + J[979] += dqdci; // dwdot[H2NN]/d[N2H3] + J[982] += dqdci; // dwdot[NH3]/d[N2H3] + J[988] -= dqdci; // dwdot[NH2]/d[N2H3] + J[990] -= dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[1011] += dqdT; // dwdot[H2NN]/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + J[1022] -= dqdT; // dwdot[N2H3]/dT + + // reaction 108: HO2 + N2H3 <=> H2O2 + N2H2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[30]; + k_f = 0.014 * exp(2.69 * logT - (-804.895056954649) * invT); + dlnkfdT = 2.69 * invT + (-804.895056954649) * invT2; + // reverse + phi_r = sc[9] * sc[18]; + Kc = exp(-g_RT[9] + g_RT[10] - g_RT[18] + g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[30]) + (h_RT[9] + h_RT[18])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[9] += q; // H2O2 + wdot[10] -= q; // HO2 + wdot[18] += q; // N2H2 + wdot[30] -= q; // N2H3 + // d()/d[H2O2] + dqdci = -k_r * sc[18]; + J[297] += dqdci; // dwdot[H2O2]/d[H2O2] + J[298] -= dqdci; // dwdot[HO2]/d[H2O2] + J[306] += dqdci; // dwdot[N2H2]/d[H2O2] + J[318] -= dqdci; // dwdot[N2H3]/d[H2O2] + // d()/d[HO2] + dqdci = +k_f * sc[30]; + J[329] += dqdci; // dwdot[H2O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[338] += dqdci; // dwdot[N2H2]/d[HO2] + J[350] -= dqdci; // dwdot[N2H3]/d[HO2] + // d()/d[N2H2] + dqdci = -k_r * sc[9]; + J[585] += dqdci; // dwdot[H2O2]/d[N2H2] + J[586] -= dqdci; // dwdot[HO2]/d[N2H2] + J[594] += dqdci; // dwdot[N2H2]/d[N2H2] + J[606] -= dqdci; // dwdot[N2H3]/d[N2H2] + // d()/d[N2H3] + dqdci = +k_f * sc[10]; + J[969] += dqdci; // dwdot[H2O2]/d[N2H3] + J[970] -= dqdci; // dwdot[HO2]/d[N2H3] + J[978] += dqdci; // dwdot[N2H2]/d[N2H3] + J[990] -= dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[1001] += dqdT; // dwdot[H2O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1010] += dqdT; // dwdot[N2H2]/dT + J[1022] -= dqdT; // dwdot[N2H3]/dT + + // reaction 109: HO2 + N2H3 <=> N2H4 + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[30]; + k_f = 0.92 * exp(1.94 * logT - (1069.88895316741) * invT); + dlnkfdT = 1.94 * invT + (1069.88895316741) * invT2; + // reverse + phi_r = sc[5] * sc[23]; + Kc = exp(-g_RT[5] + g_RT[10] - g_RT[23] + g_RT[30]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[30]) + (h_RT[5] + h_RT[23])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[10] -= q; // HO2 + wdot[23] += q; // N2H4 + wdot[30] -= q; // N2H3 + // d()/d[O2] + dqdci = -k_r * sc[23]; + J[165] += dqdci; // dwdot[O2]/d[O2] + J[170] -= dqdci; // dwdot[HO2]/d[O2] + J[183] += dqdci; // dwdot[N2H4]/d[O2] + J[190] -= dqdci; // dwdot[N2H3]/d[O2] + // d()/d[HO2] + dqdci = +k_f * sc[30]; + J[325] += dqdci; // dwdot[O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[343] += dqdci; // dwdot[N2H4]/d[HO2] + J[350] -= dqdci; // dwdot[N2H3]/d[HO2] + // d()/d[N2H4] + dqdci = -k_r * sc[5]; + J[741] += dqdci; // dwdot[O2]/d[N2H4] + J[746] -= dqdci; // dwdot[HO2]/d[N2H4] + J[759] += dqdci; // dwdot[N2H4]/d[N2H4] + J[766] -= dqdci; // dwdot[N2H3]/d[N2H4] + // d()/d[N2H3] + dqdci = +k_f * sc[10]; + J[965] += dqdci; // dwdot[O2]/d[N2H3] + J[970] -= dqdci; // dwdot[HO2]/d[N2H3] + J[983] += dqdci; // dwdot[N2H4]/d[N2H3] + J[990] -= dqdci; // dwdot[N2H3]/d[N2H3] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1015] += dqdT; // dwdot[N2H4]/dT + J[1022] -= dqdT; // dwdot[N2H3]/dT + + // reaction 110: N2H2 <=> H + NNH + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[18]; + k_f = 1.71879413245943e+40 * + exp(-8.40622703580694 * logT - (36903.4250189979) * invT); + dlnkfdT = -8.40622703580694 * invT + (36903.4250189979) * invT2; + // reverse + phi_r = sc[4] * sc[27]; + Kc = refC * exp(-g_RT[4] + g_RT[18] - g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[18]) + (h_RT[4] + h_RT[27]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[18] -= q; // N2H2 + wdot[27] += q; // NNH + // d()/d[H] + dqdci = -k_r * sc[27]; + J[132] += dqdci; // dwdot[H]/d[H] + J[146] -= dqdci; // dwdot[N2H2]/d[H] + J[155] += dqdci; // dwdot[NNH]/d[H] + // d()/d[N2H2] + dqdci = +k_f; + J[580] += dqdci; // dwdot[H]/d[N2H2] + J[594] -= dqdci; // dwdot[N2H2]/d[N2H2] + J[603] += dqdci; // dwdot[NNH]/d[N2H2] + // d()/d[NNH] + dqdci = -k_r * sc[4]; + J[868] += dqdci; // dwdot[H]/d[NNH] + J[882] -= dqdci; // dwdot[N2H2]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1010] -= dqdT; // dwdot[N2H2]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + + // reaction 111: N2H2 <=> H + NNH + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[18]; + k_f = 2.49240230236554e+40 * + exp(-8.5266271986759 * logT - (36671.3233662919) * invT); + dlnkfdT = -8.5266271986759 * invT + (36671.3233662919) * invT2; + // reverse + phi_r = sc[4] * sc[27]; + Kc = refC * exp(-g_RT[4] + g_RT[18] - g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[18]) + (h_RT[4] + h_RT[27]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[18] -= q; // N2H2 + wdot[27] += q; // NNH + // d()/d[H] + dqdci = -k_r * sc[27]; + J[132] += dqdci; // dwdot[H]/d[H] + J[146] -= dqdci; // dwdot[N2H2]/d[H] + J[155] += dqdci; // dwdot[NNH]/d[H] + // d()/d[N2H2] + dqdci = +k_f; + J[580] += dqdci; // dwdot[H]/d[N2H2] + J[594] -= dqdci; // dwdot[N2H2]/d[N2H2] + J[603] += dqdci; // dwdot[NNH]/d[N2H2] + // d()/d[NNH] + dqdci = -k_r * sc[4]; + J[868] += dqdci; // dwdot[H]/d[NNH] + J[882] -= dqdci; // dwdot[N2H2]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1010] -= dqdT; // dwdot[N2H2]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + + // reaction 112: H + N2H2 <=> H2 + NNH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[18]; + k_f = 4121 * exp(1.289 * logT - (-112.770854806838) * invT); + dlnkfdT = 1.289 * invT + (-112.770854806838) * invT2; + // reverse + phi_r = sc[3] * sc[27]; + Kc = exp(-g_RT[3] + g_RT[4] + g_RT[18] - g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[18]) + (h_RT[3] + h_RT[27])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[18] -= q; // N2H2 + wdot[27] += q; // NNH + // d()/d[H2] + dqdci = -k_r * sc[27]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[114] -= dqdci; // dwdot[N2H2]/d[H2] + J[123] += dqdci; // dwdot[NNH]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[18]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[146] -= dqdci; // dwdot[N2H2]/d[H] + J[155] += dqdci; // dwdot[NNH]/d[H] + // d()/d[N2H2] + dqdci = +k_f * sc[4]; + J[579] += dqdci; // dwdot[H2]/d[N2H2] + J[580] -= dqdci; // dwdot[H]/d[N2H2] + J[594] -= dqdci; // dwdot[N2H2]/d[N2H2] + J[603] += dqdci; // dwdot[NNH]/d[N2H2] + // d()/d[NNH] + dqdci = -k_r * sc[3]; + J[867] += dqdci; // dwdot[H2]/d[NNH] + J[868] -= dqdci; // dwdot[H]/d[NNH] + J[882] -= dqdci; // dwdot[N2H2]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1010] -= dqdT; // dwdot[N2H2]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + + // reaction 113: N2H2 + O <=> NNH + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[18]; + k_f = 330 * exp(1.5 * logT - (249.847074572043) * invT); + dlnkfdT = 1.5 * invT + (249.847074572043) * invT2; + // reverse + phi_r = sc[8] * sc[27]; + Kc = exp(g_RT[6] - g_RT[8] + g_RT[18] - g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[18]) + (h_RT[8] + h_RT[27])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[18] -= q; // N2H2 + wdot[27] += q; // NNH + // d()/d[O] + dqdci = +k_f * sc[18]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[210] -= dqdci; // dwdot[N2H2]/d[O] + J[219] += dqdci; // dwdot[NNH]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[27]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[274] -= dqdci; // dwdot[N2H2]/d[OH] + J[283] += dqdci; // dwdot[NNH]/d[OH] + // d()/d[N2H2] + dqdci = +k_f * sc[6]; + J[582] -= dqdci; // dwdot[O]/d[N2H2] + J[584] += dqdci; // dwdot[OH]/d[N2H2] + J[594] -= dqdci; // dwdot[N2H2]/d[N2H2] + J[603] += dqdci; // dwdot[NNH]/d[N2H2] + // d()/d[NNH] + dqdci = -k_r * sc[8]; + J[870] -= dqdci; // dwdot[O]/d[NNH] + J[872] += dqdci; // dwdot[OH]/d[NNH] + J[882] -= dqdci; // dwdot[N2H2]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1010] -= dqdT; // dwdot[N2H2]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + + // reaction 114: N2H2 + OH <=> H2O + NNH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[18]; + k_f = 5.923e-05 * exp(3.4 * logT - (-686.236567157896) * invT); + dlnkfdT = 3.4 * invT + (-686.236567157896) * invT2; + // reverse + phi_r = sc[7] * sc[27]; + Kc = exp(-g_RT[7] + g_RT[8] + g_RT[18] - g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[18]) + (h_RT[7] + h_RT[27])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[18] -= q; // N2H2 + wdot[27] += q; // NNH + // d()/d[H2O] + dqdci = -k_r * sc[27]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[242] -= dqdci; // dwdot[N2H2]/d[H2O] + J[251] += dqdci; // dwdot[NNH]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[18]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[274] -= dqdci; // dwdot[N2H2]/d[OH] + J[283] += dqdci; // dwdot[NNH]/d[OH] + // d()/d[N2H2] + dqdci = +k_f * sc[8]; + J[583] += dqdci; // dwdot[H2O]/d[N2H2] + J[584] -= dqdci; // dwdot[OH]/d[N2H2] + J[594] -= dqdci; // dwdot[N2H2]/d[N2H2] + J[603] += dqdci; // dwdot[NNH]/d[N2H2] + // d()/d[NNH] + dqdci = -k_r * sc[7]; + J[871] += dqdci; // dwdot[H2O]/d[NNH] + J[872] -= dqdci; // dwdot[OH]/d[NNH] + J[882] -= dqdci; // dwdot[N2H2]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1010] -= dqdT; // dwdot[N2H2]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + + // reaction 115: N2H2 + NO <=> N2O + NH2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[11] * sc[18]; + k_f = 4000000 * exp(-(5996.32978972904) * invT); + dlnkfdT = (5996.32978972904) * invT2; + // reverse + phi_r = sc[12] * sc[28]; + Kc = exp(g_RT[11] - g_RT[12] + g_RT[18] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[11] + h_RT[18]) + (h_RT[12] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[11] -= q; // NO + wdot[12] += q; // N2O + wdot[18] -= q; // N2H2 + wdot[28] += q; // NH2 + // d()/d[NO] + dqdci = +k_f * sc[18]; + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[364] += dqdci; // dwdot[N2O]/d[NO] + J[370] -= dqdci; // dwdot[N2H2]/d[NO] + J[380] += dqdci; // dwdot[NH2]/d[NO] + // d()/d[N2O] + dqdci = -k_r * sc[28]; + J[395] -= dqdci; // dwdot[NO]/d[N2O] + J[396] += dqdci; // dwdot[N2O]/d[N2O] + J[402] -= dqdci; // dwdot[N2H2]/d[N2O] + J[412] += dqdci; // dwdot[NH2]/d[N2O] + // d()/d[N2H2] + dqdci = +k_f * sc[11]; + J[587] -= dqdci; // dwdot[NO]/d[N2H2] + J[588] += dqdci; // dwdot[N2O]/d[N2H2] + J[594] -= dqdci; // dwdot[N2H2]/d[N2H2] + J[604] += dqdci; // dwdot[NH2]/d[N2H2] + // d()/d[NH2] + dqdci = -k_r * sc[12]; + J[907] -= dqdci; // dwdot[NO]/d[NH2] + J[908] += dqdci; // dwdot[N2O]/d[NH2] + J[914] -= dqdci; // dwdot[N2H2]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1004] += dqdT; // dwdot[N2O]/dT + J[1010] -= dqdT; // dwdot[N2H2]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 116: N2H2 + NH <=> NH2 + NNH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[18] * sc[26]; + k_f = 2.4 * exp(2 * logT - (-599.632978972904) * invT); + dlnkfdT = 2 * invT + (-599.632978972904) * invT2; + // reverse + phi_r = sc[27] * sc[28]; + Kc = exp(g_RT[18] + g_RT[26] - g_RT[27] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[18] + h_RT[26]) + (h_RT[27] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[18] -= q; // N2H2 + wdot[26] -= q; // NH + wdot[27] += q; // NNH + wdot[28] += q; // NH2 + // d()/d[N2H2] + dqdci = +k_f * sc[26]; + J[594] -= dqdci; // dwdot[N2H2]/d[N2H2] + J[602] -= dqdci; // dwdot[NH]/d[N2H2] + J[603] += dqdci; // dwdot[NNH]/d[N2H2] + J[604] += dqdci; // dwdot[NH2]/d[N2H2] + // d()/d[NH] + dqdci = +k_f * sc[18]; + J[850] -= dqdci; // dwdot[N2H2]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + J[859] += dqdci; // dwdot[NNH]/d[NH] + J[860] += dqdci; // dwdot[NH2]/d[NH] + // d()/d[NNH] + dqdci = -k_r * sc[28]; + J[882] -= dqdci; // dwdot[N2H2]/d[NNH] + J[890] -= dqdci; // dwdot[NH]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + J[892] += dqdci; // dwdot[NH2]/d[NNH] + // d()/d[NH2] + dqdci = -k_r * sc[27]; + J[914] -= dqdci; // dwdot[N2H2]/d[NH2] + J[922] -= dqdci; // dwdot[NH]/d[NH2] + J[923] += dqdci; // dwdot[NNH]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1010] -= dqdT; // dwdot[N2H2]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 117: N2H2 + NH2 <=> NH3 + NNH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[18] * sc[28]; + k_f = 8.8e-08 * exp(4.05 * logT - (-810.178831945599) * invT); + dlnkfdT = 4.05 * invT + (-810.178831945599) * invT2; + // reverse + phi_r = sc[22] * sc[27]; + Kc = exp(g_RT[18] - g_RT[22] - g_RT[27] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[18] + h_RT[28]) + (h_RT[22] + h_RT[27])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[18] -= q; // N2H2 + wdot[22] += q; // NH3 + wdot[27] += q; // NNH + wdot[28] -= q; // NH2 + // d()/d[N2H2] + dqdci = +k_f * sc[28]; + J[594] -= dqdci; // dwdot[N2H2]/d[N2H2] + J[598] += dqdci; // dwdot[NH3]/d[N2H2] + J[603] += dqdci; // dwdot[NNH]/d[N2H2] + J[604] -= dqdci; // dwdot[NH2]/d[N2H2] + // d()/d[NH3] + dqdci = -k_r * sc[27]; + J[722] -= dqdci; // dwdot[N2H2]/d[NH3] + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[731] += dqdci; // dwdot[NNH]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NNH] + dqdci = -k_r * sc[22]; + J[882] -= dqdci; // dwdot[N2H2]/d[NNH] + J[886] += dqdci; // dwdot[NH3]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + J[892] -= dqdci; // dwdot[NH2]/d[NNH] + // d()/d[NH2] + dqdci = +k_f * sc[18]; + J[914] -= dqdci; // dwdot[N2H2]/d[NH2] + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[923] += dqdci; // dwdot[NNH]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1010] -= dqdT; // dwdot[N2H2]/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 118: N2H2 <=> H2NN + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[18]; + k_f = 1.93940668415635e+41 * + exp(-9.37788485340692 * logT - (34444.2013843765) * invT); + dlnkfdT = -9.37788485340692 * invT + (34444.2013843765) * invT2; + // reverse + phi_r = sc[19]; + Kc = exp(g_RT[18] - g_RT[19]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[18]) + (h_RT[19])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[18] -= q; // N2H2 + wdot[19] += q; // H2NN + // d()/d[N2H2] + dqdci = +k_f; + J[594] -= dqdci; // dwdot[N2H2]/d[N2H2] + J[595] += dqdci; // dwdot[H2NN]/d[N2H2] + // d()/d[H2NN] + dqdci = -k_r; + J[626] -= dqdci; // dwdot[N2H2]/d[H2NN] + J[627] += dqdci; // dwdot[H2NN]/d[H2NN] + // d()/dT + J[1010] -= dqdT; // dwdot[N2H2]/dT + J[1011] += dqdT; // dwdot[H2NN]/dT + + // reaction 119: H2NN <=> H + NNH + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[19]; + k_f = 9.20264764849862e+35 * + exp(-7.56668436480004 * logT - (27588.2318940823) * invT); + dlnkfdT = -7.56668436480004 * invT + (27588.2318940823) * invT2; + // reverse + phi_r = sc[4] * sc[27]; + Kc = refC * exp(-g_RT[4] + g_RT[19] - g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[19]) + (h_RT[4] + h_RT[27]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[19] -= q; // H2NN + wdot[27] += q; // NNH + // d()/d[H] + dqdci = -k_r * sc[27]; + J[132] += dqdci; // dwdot[H]/d[H] + J[147] -= dqdci; // dwdot[H2NN]/d[H] + J[155] += dqdci; // dwdot[NNH]/d[H] + // d()/d[H2NN] + dqdci = +k_f; + J[612] += dqdci; // dwdot[H]/d[H2NN] + J[627] -= dqdci; // dwdot[H2NN]/d[H2NN] + J[635] += dqdci; // dwdot[NNH]/d[H2NN] + // d()/d[NNH] + dqdci = -k_r * sc[4]; + J[868] += dqdci; // dwdot[H]/d[NNH] + J[883] -= dqdci; // dwdot[H2NN]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1011] -= dqdT; // dwdot[H2NN]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + + // reaction 120: H2NN <=> H + NNH + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[19]; + k_f = 3.09039101188632e+31 * + exp(-6.22886074924128 * logT - (26322.6514882744) * invT); + dlnkfdT = -6.22886074924128 * invT + (26322.6514882744) * invT2; + // reverse + phi_r = sc[4] * sc[27]; + Kc = refC * exp(-g_RT[4] + g_RT[19] - g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[19]) + (h_RT[4] + h_RT[27]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[19] -= q; // H2NN + wdot[27] += q; // NNH + // d()/d[H] + dqdci = -k_r * sc[27]; + J[132] += dqdci; // dwdot[H]/d[H] + J[147] -= dqdci; // dwdot[H2NN]/d[H] + J[155] += dqdci; // dwdot[NNH]/d[H] + // d()/d[H2NN] + dqdci = +k_f; + J[612] += dqdci; // dwdot[H]/d[H2NN] + J[627] -= dqdci; // dwdot[H2NN]/d[H2NN] + J[635] += dqdci; // dwdot[NNH]/d[H2NN] + // d()/d[NNH] + dqdci = -k_r * sc[4]; + J[868] += dqdci; // dwdot[H]/d[NNH] + J[883] -= dqdci; // dwdot[H2NN]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1011] -= dqdT; // dwdot[H2NN]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + + // reaction 121: H2NN + O2 <=> NH2 + NO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[5] * sc[19]; + k_f = 1500000 * exp(-(2999.67454486193) * invT); + dlnkfdT = (2999.67454486193) * invT2; + // reverse + phi_r = sc[13] * sc[28]; + Kc = exp(g_RT[5] - g_RT[13] + g_RT[19] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[5] + h_RT[19]) + (h_RT[13] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] -= q; // O2 + wdot[13] += q; // NO2 + wdot[19] -= q; // H2NN + wdot[28] += q; // NH2 + // d()/d[O2] + dqdci = +k_f * sc[19]; + J[165] -= dqdci; // dwdot[O2]/d[O2] + J[173] += dqdci; // dwdot[NO2]/d[O2] + J[179] -= dqdci; // dwdot[H2NN]/d[O2] + J[188] += dqdci; // dwdot[NH2]/d[O2] + // d()/d[NO2] + dqdci = -k_r * sc[28]; + J[421] -= dqdci; // dwdot[O2]/d[NO2] + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[435] -= dqdci; // dwdot[H2NN]/d[NO2] + J[444] += dqdci; // dwdot[NH2]/d[NO2] + // d()/d[H2NN] + dqdci = +k_f * sc[5]; + J[613] -= dqdci; // dwdot[O2]/d[H2NN] + J[621] += dqdci; // dwdot[NO2]/d[H2NN] + J[627] -= dqdci; // dwdot[H2NN]/d[H2NN] + J[636] += dqdci; // dwdot[NH2]/d[H2NN] + // d()/d[NH2] + dqdci = -k_r * sc[13]; + J[901] -= dqdci; // dwdot[O2]/d[NH2] + J[909] += dqdci; // dwdot[NO2]/d[NH2] + J[915] -= dqdci; // dwdot[H2NN]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1011] -= dqdT; // dwdot[H2NN]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 122: H + H2NN <=> H + N2H2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[19]; + k_f = 18000 * exp(0.97 * logT - (2249.78106947974) * invT); + dlnkfdT = 0.97 * invT + (2249.78106947974) * invT2; + // reverse + phi_r = sc[4] * sc[18]; + Kc = exp(g_RT[4] - g_RT[4] - g_RT[18] + g_RT[19]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[19]) + (h_RT[4] + h_RT[18])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[18] += q; // N2H2 + wdot[19] -= q; // H2NN + // d()/d[H] + dqdci = +k_f * sc[19] - k_r * sc[18]; + J[146] += dqdci; // dwdot[N2H2]/d[H] + J[147] -= dqdci; // dwdot[H2NN]/d[H] + // d()/d[N2H2] + dqdci = -k_r * sc[4]; + J[594] += dqdci; // dwdot[N2H2]/d[N2H2] + J[595] -= dqdci; // dwdot[H2NN]/d[N2H2] + // d()/d[H2NN] + dqdci = +k_f * sc[4]; + J[626] += dqdci; // dwdot[N2H2]/d[H2NN] + J[627] -= dqdci; // dwdot[H2NN]/d[H2NN] + // d()/dT + J[1010] += dqdT; // dwdot[N2H2]/dT + J[1011] -= dqdT; // dwdot[H2NN]/dT + + // reaction 123: H + H2NN <=> H2 + NNH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[19]; + k_f = 480 * exp(1.5 * logT - (-449.97634256258) * invT); + dlnkfdT = 1.5 * invT + (-449.97634256258) * invT2; + // reverse + phi_r = sc[3] * sc[27]; + Kc = exp(-g_RT[3] + g_RT[4] + g_RT[19] - g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[19]) + (h_RT[3] + h_RT[27])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[19] -= q; // H2NN + wdot[27] += q; // NNH + // d()/d[H2] + dqdci = -k_r * sc[27]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[115] -= dqdci; // dwdot[H2NN]/d[H2] + J[123] += dqdci; // dwdot[NNH]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[19]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[147] -= dqdci; // dwdot[H2NN]/d[H] + J[155] += dqdci; // dwdot[NNH]/d[H] + // d()/d[H2NN] + dqdci = +k_f * sc[4]; + J[611] += dqdci; // dwdot[H2]/d[H2NN] + J[612] -= dqdci; // dwdot[H]/d[H2NN] + J[627] -= dqdci; // dwdot[H2NN]/d[H2NN] + J[635] += dqdci; // dwdot[NNH]/d[H2NN] + // d()/d[NNH] + dqdci = -k_r * sc[3]; + J[867] += dqdci; // dwdot[H2]/d[NNH] + J[868] -= dqdci; // dwdot[H]/d[NNH] + J[883] -= dqdci; // dwdot[H2NN]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1011] -= dqdT; // dwdot[H2NN]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + + // reaction 124: H2NN + O <=> NH2 + NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[19]; + k_f = 3200 * exp(1.03 * logT - (1359.84239600409) * invT); + dlnkfdT = 1.03 * invT + (1359.84239600409) * invT2; + // reverse + phi_r = sc[11] * sc[28]; + Kc = exp(g_RT[6] - g_RT[11] + g_RT[19] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[19]) + (h_RT[11] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[11] += q; // NO + wdot[19] -= q; // H2NN + wdot[28] += q; // NH2 + // d()/d[O] + dqdci = +k_f * sc[19]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[203] += dqdci; // dwdot[NO]/d[O] + J[211] -= dqdci; // dwdot[H2NN]/d[O] + J[220] += dqdci; // dwdot[NH2]/d[O] + // d()/d[NO] + dqdci = -k_r * sc[28]; + J[358] -= dqdci; // dwdot[O]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[371] -= dqdci; // dwdot[H2NN]/d[NO] + J[380] += dqdci; // dwdot[NH2]/d[NO] + // d()/d[H2NN] + dqdci = +k_f * sc[6]; + J[614] -= dqdci; // dwdot[O]/d[H2NN] + J[619] += dqdci; // dwdot[NO]/d[H2NN] + J[627] -= dqdci; // dwdot[H2NN]/d[H2NN] + J[636] += dqdci; // dwdot[NH2]/d[H2NN] + // d()/d[NH2] + dqdci = -k_r * sc[11]; + J[902] -= dqdci; // dwdot[O]/d[NH2] + J[907] += dqdci; // dwdot[NO]/d[NH2] + J[915] -= dqdci; // dwdot[H2NN]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1011] -= dqdT; // dwdot[H2NN]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 125: H2NN + O <=> NNH + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[19]; + k_f = 330 * exp(1.5 * logT - (-449.97634256258) * invT); + dlnkfdT = 1.5 * invT + (-449.97634256258) * invT2; + // reverse + phi_r = sc[8] * sc[27]; + Kc = exp(g_RT[6] - g_RT[8] + g_RT[19] - g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[19]) + (h_RT[8] + h_RT[27])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[19] -= q; // H2NN + wdot[27] += q; // NNH + // d()/d[O] + dqdci = +k_f * sc[19]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[211] -= dqdci; // dwdot[H2NN]/d[O] + J[219] += dqdci; // dwdot[NNH]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[27]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[275] -= dqdci; // dwdot[H2NN]/d[OH] + J[283] += dqdci; // dwdot[NNH]/d[OH] + // d()/d[H2NN] + dqdci = +k_f * sc[6]; + J[614] -= dqdci; // dwdot[O]/d[H2NN] + J[616] += dqdci; // dwdot[OH]/d[H2NN] + J[627] -= dqdci; // dwdot[H2NN]/d[H2NN] + J[635] += dqdci; // dwdot[NNH]/d[H2NN] + // d()/d[NNH] + dqdci = -k_r * sc[8]; + J[870] -= dqdci; // dwdot[O]/d[NNH] + J[872] += dqdci; // dwdot[OH]/d[NNH] + J[883] -= dqdci; // dwdot[H2NN]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1011] -= dqdT; // dwdot[H2NN]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + + // reaction 126: H2NN + OH <=> H2O + NNH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[19]; + k_f = 2.4 * exp(2 * logT - (-599.934908972387) * invT); + dlnkfdT = 2 * invT + (-599.934908972387) * invT2; + // reverse + phi_r = sc[7] * sc[27]; + Kc = exp(-g_RT[7] + g_RT[8] + g_RT[19] - g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[19]) + (h_RT[7] + h_RT[27])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[19] -= q; // H2NN + wdot[27] += q; // NNH + // d()/d[H2O] + dqdci = -k_r * sc[27]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[243] -= dqdci; // dwdot[H2NN]/d[H2O] + J[251] += dqdci; // dwdot[NNH]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[19]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[275] -= dqdci; // dwdot[H2NN]/d[OH] + J[283] += dqdci; // dwdot[NNH]/d[OH] + // d()/d[H2NN] + dqdci = +k_f * sc[8]; + J[615] += dqdci; // dwdot[H2O]/d[H2NN] + J[616] -= dqdci; // dwdot[OH]/d[H2NN] + J[627] -= dqdci; // dwdot[H2NN]/d[H2NN] + J[635] += dqdci; // dwdot[NNH]/d[H2NN] + // d()/d[NNH] + dqdci = -k_r * sc[7]; + J[871] += dqdci; // dwdot[H2O]/d[NNH] + J[872] -= dqdci; // dwdot[OH]/d[NNH] + J[883] -= dqdci; // dwdot[H2NN]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1011] -= dqdT; // dwdot[H2NN]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + + // reaction 127: H2NN + NH2 <=> NH3 + NNH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[19] * sc[28]; + k_f = 1.8 * exp(1.94 * logT - (-579.957207339939) * invT); + dlnkfdT = 1.94 * invT + (-579.957207339939) * invT2; + // reverse + phi_r = sc[22] * sc[27]; + Kc = exp(g_RT[19] - g_RT[22] - g_RT[27] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[19] + h_RT[28]) + (h_RT[22] + h_RT[27])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[19] -= q; // H2NN + wdot[22] += q; // NH3 + wdot[27] += q; // NNH + wdot[28] -= q; // NH2 + // d()/d[H2NN] + dqdci = +k_f * sc[28]; + J[627] -= dqdci; // dwdot[H2NN]/d[H2NN] + J[630] += dqdci; // dwdot[NH3]/d[H2NN] + J[635] += dqdci; // dwdot[NNH]/d[H2NN] + J[636] -= dqdci; // dwdot[NH2]/d[H2NN] + // d()/d[NH3] + dqdci = -k_r * sc[27]; + J[723] -= dqdci; // dwdot[H2NN]/d[NH3] + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[731] += dqdci; // dwdot[NNH]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NNH] + dqdci = -k_r * sc[22]; + J[883] -= dqdci; // dwdot[H2NN]/d[NNH] + J[886] += dqdci; // dwdot[NH3]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + J[892] -= dqdci; // dwdot[NH2]/d[NNH] + // d()/d[NH2] + dqdci = +k_f * sc[19]; + J[915] -= dqdci; // dwdot[H2NN]/d[NH2] + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[923] += dqdci; // dwdot[NNH]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1011] -= dqdT; // dwdot[H2NN]/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 128: H2NN + HO2 <=> H2O2 + NNH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[19]; + k_f = 0.029 * exp(2.69 * logT - (-804.895056954649) * invT); + dlnkfdT = 2.69 * invT + (-804.895056954649) * invT2; + // reverse + phi_r = sc[9] * sc[27]; + Kc = exp(-g_RT[9] + g_RT[10] + g_RT[19] - g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[19]) + (h_RT[9] + h_RT[27])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[9] += q; // H2O2 + wdot[10] -= q; // HO2 + wdot[19] -= q; // H2NN + wdot[27] += q; // NNH + // d()/d[H2O2] + dqdci = -k_r * sc[27]; + J[297] += dqdci; // dwdot[H2O2]/d[H2O2] + J[298] -= dqdci; // dwdot[HO2]/d[H2O2] + J[307] -= dqdci; // dwdot[H2NN]/d[H2O2] + J[315] += dqdci; // dwdot[NNH]/d[H2O2] + // d()/d[HO2] + dqdci = +k_f * sc[19]; + J[329] += dqdci; // dwdot[H2O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[339] -= dqdci; // dwdot[H2NN]/d[HO2] + J[347] += dqdci; // dwdot[NNH]/d[HO2] + // d()/d[H2NN] + dqdci = +k_f * sc[10]; + J[617] += dqdci; // dwdot[H2O2]/d[H2NN] + J[618] -= dqdci; // dwdot[HO2]/d[H2NN] + J[627] -= dqdci; // dwdot[H2NN]/d[H2NN] + J[635] += dqdci; // dwdot[NNH]/d[H2NN] + // d()/d[NNH] + dqdci = -k_r * sc[9]; + J[873] += dqdci; // dwdot[H2O2]/d[NNH] + J[874] -= dqdci; // dwdot[HO2]/d[NNH] + J[883] -= dqdci; // dwdot[H2NN]/d[NNH] + J[891] += dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[1001] += dqdT; // dwdot[H2O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1011] -= dqdT; // dwdot[H2NN]/dT + J[1019] += dqdT; // dwdot[NNH]/dT + + // reaction 129: NNH <=> H + N2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[27]; + k_f = 1000000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[1] * sc[4]; + Kc = refC * exp(-g_RT[1] - g_RT[4] + g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[27]) + (h_RT[1] + h_RT[4]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[4] += q; // H + wdot[27] -= q; // NNH + // d()/d[N2] + dqdci = -k_r * sc[4]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[36] += dqdci; // dwdot[H]/d[N2] + J[59] -= dqdci; // dwdot[NNH]/d[N2] + // d()/d[H] + dqdci = -k_r * sc[1]; + J[129] += dqdci; // dwdot[N2]/d[H] + J[132] += dqdci; // dwdot[H]/d[H] + J[155] -= dqdci; // dwdot[NNH]/d[H] + // d()/d[NNH] + dqdci = +k_f; + J[865] += dqdci; // dwdot[N2]/d[NNH] + J[868] += dqdci; // dwdot[H]/d[NNH] + J[891] -= dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[996] += dqdT; // dwdot[H]/dT + J[1019] -= dqdT; // dwdot[NNH]/dT + + // reaction 130: H + NNH <=> H2 + N2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[27]; + k_f = 240 * exp(1.5 * logT - (-449.724734229678) * invT); + dlnkfdT = 1.5 * invT + (-449.724734229678) * invT2; + // reverse + phi_r = sc[1] * sc[3]; + Kc = exp(-g_RT[1] - g_RT[3] + g_RT[4] + g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[27]) + (h_RT[1] + h_RT[3])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[27] -= q; // NNH + // d()/d[N2] + dqdci = -k_r * sc[3]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[35] += dqdci; // dwdot[H2]/d[N2] + J[36] -= dqdci; // dwdot[H]/d[N2] + J[59] -= dqdci; // dwdot[NNH]/d[N2] + // d()/d[H2] + dqdci = -k_r * sc[1]; + J[97] += dqdci; // dwdot[N2]/d[H2] + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[123] -= dqdci; // dwdot[NNH]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[27]; + J[129] += dqdci; // dwdot[N2]/d[H] + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[155] -= dqdci; // dwdot[NNH]/d[H] + // d()/d[NNH] + dqdci = +k_f * sc[4]; + J[865] += dqdci; // dwdot[N2]/d[NNH] + J[867] += dqdci; // dwdot[H2]/d[NNH] + J[868] -= dqdci; // dwdot[H]/d[NNH] + J[891] -= dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1019] -= dqdT; // dwdot[NNH]/dT + + // reaction 131: NNH + O <=> H + N2O + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[27]; + k_f = 190000000 * exp(-0.274 * logT - (-11.0707666477038) * invT); + dlnkfdT = -0.274 * invT + (-11.0707666477038) * invT2; + // reverse + phi_r = sc[4] * sc[12]; + Kc = exp(-g_RT[4] + g_RT[6] - g_RT[12] + g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[27]) + (h_RT[4] + h_RT[12])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[6] -= q; // O + wdot[12] += q; // N2O + wdot[27] -= q; // NNH + // d()/d[H] + dqdci = -k_r * sc[12]; + J[132] += dqdci; // dwdot[H]/d[H] + J[134] -= dqdci; // dwdot[O]/d[H] + J[140] += dqdci; // dwdot[N2O]/d[H] + J[155] -= dqdci; // dwdot[NNH]/d[H] + // d()/d[O] + dqdci = +k_f * sc[27]; + J[196] += dqdci; // dwdot[H]/d[O] + J[198] -= dqdci; // dwdot[O]/d[O] + J[204] += dqdci; // dwdot[N2O]/d[O] + J[219] -= dqdci; // dwdot[NNH]/d[O] + // d()/d[N2O] + dqdci = -k_r * sc[4]; + J[388] += dqdci; // dwdot[H]/d[N2O] + J[390] -= dqdci; // dwdot[O]/d[N2O] + J[396] += dqdci; // dwdot[N2O]/d[N2O] + J[411] -= dqdci; // dwdot[NNH]/d[N2O] + // d()/d[NNH] + dqdci = +k_f * sc[6]; + J[868] += dqdci; // dwdot[H]/d[NNH] + J[870] -= dqdci; // dwdot[O]/d[NNH] + J[876] += dqdci; // dwdot[N2O]/d[NNH] + J[891] -= dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1004] += dqdT; // dwdot[N2O]/dT + J[1019] -= dqdT; // dwdot[NNH]/dT + + // reaction 132: NNH + O <=> NH + NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[27]; + k_f = 520000 * exp(0.388 * logT - (-205.81561631413) * invT); + dlnkfdT = 0.388 * invT + (-205.81561631413) * invT2; + // reverse + phi_r = sc[11] * sc[26]; + Kc = exp(g_RT[6] - g_RT[11] - g_RT[26] + g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[27]) + (h_RT[11] + h_RT[26])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[11] += q; // NO + wdot[26] += q; // NH + wdot[27] -= q; // NNH + // d()/d[O] + dqdci = +k_f * sc[27]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[203] += dqdci; // dwdot[NO]/d[O] + J[218] += dqdci; // dwdot[NH]/d[O] + J[219] -= dqdci; // dwdot[NNH]/d[O] + // d()/d[NO] + dqdci = -k_r * sc[26]; + J[358] -= dqdci; // dwdot[O]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[378] += dqdci; // dwdot[NH]/d[NO] + J[379] -= dqdci; // dwdot[NNH]/d[NO] + // d()/d[NH] + dqdci = -k_r * sc[11]; + J[838] -= dqdci; // dwdot[O]/d[NH] + J[843] += dqdci; // dwdot[NO]/d[NH] + J[858] += dqdci; // dwdot[NH]/d[NH] + J[859] -= dqdci; // dwdot[NNH]/d[NH] + // d()/d[NNH] + dqdci = +k_f * sc[6]; + J[870] -= dqdci; // dwdot[O]/d[NNH] + J[875] += dqdci; // dwdot[NO]/d[NNH] + J[890] += dqdci; // dwdot[NH]/d[NNH] + J[891] -= dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1018] += dqdT; // dwdot[NH]/dT + J[1019] -= dqdT; // dwdot[NNH]/dT + + // reaction 133: NNH + O <=> N2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[27]; + k_f = 12000000 * exp(0.145 * logT - (-109.198016479624) * invT); + dlnkfdT = 0.145 * invT + (-109.198016479624) * invT2; + // reverse + phi_r = sc[1] * sc[8]; + Kc = exp(-g_RT[1] + g_RT[6] - g_RT[8] + g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[27]) + (h_RT[1] + h_RT[8])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[27] -= q; // NNH + // d()/d[N2] + dqdci = -k_r * sc[8]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[38] -= dqdci; // dwdot[O]/d[N2] + J[40] += dqdci; // dwdot[OH]/d[N2] + J[59] -= dqdci; // dwdot[NNH]/d[N2] + // d()/d[O] + dqdci = +k_f * sc[27]; + J[193] += dqdci; // dwdot[N2]/d[O] + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[219] -= dqdci; // dwdot[NNH]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[1]; + J[257] += dqdci; // dwdot[N2]/d[OH] + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[283] -= dqdci; // dwdot[NNH]/d[OH] + // d()/d[NNH] + dqdci = +k_f * sc[6]; + J[865] += dqdci; // dwdot[N2]/d[NNH] + J[870] -= dqdci; // dwdot[O]/d[NNH] + J[872] += dqdci; // dwdot[OH]/d[NNH] + J[891] -= dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1019] -= dqdT; // dwdot[NNH]/dT + + // reaction 134: NNH + OH <=> H2O + N2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[27]; + k_f = 50000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[1] * sc[7]; + Kc = exp(-g_RT[1] - g_RT[7] + g_RT[8] + g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[27]) + (h_RT[1] + h_RT[7])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[27] -= q; // NNH + // d()/d[N2] + dqdci = -k_r * sc[7]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[39] += dqdci; // dwdot[H2O]/d[N2] + J[40] -= dqdci; // dwdot[OH]/d[N2] + J[59] -= dqdci; // dwdot[NNH]/d[N2] + // d()/d[H2O] + dqdci = -k_r * sc[1]; + J[225] += dqdci; // dwdot[N2]/d[H2O] + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[251] -= dqdci; // dwdot[NNH]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[27]; + J[257] += dqdci; // dwdot[N2]/d[OH] + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[283] -= dqdci; // dwdot[NNH]/d[OH] + // d()/d[NNH] + dqdci = +k_f * sc[8]; + J[865] += dqdci; // dwdot[N2]/d[NNH] + J[871] += dqdci; // dwdot[H2O]/d[NNH] + J[872] -= dqdci; // dwdot[OH]/d[NNH] + J[891] -= dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1019] -= dqdT; // dwdot[NNH]/dT + + // reaction 135: NNH + O2 <=> HO2 + N2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[5] * sc[27]; + k_f = 560000000 * exp(-0.385 * logT - (-6.54181665546136) * invT); + dlnkfdT = -0.385 * invT + (-6.54181665546136) * invT2; + // reverse + phi_r = sc[1] * sc[10]; + Kc = exp(-g_RT[1] + g_RT[5] - g_RT[10] + g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[5] + h_RT[27]) + (h_RT[1] + h_RT[10])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[5] -= q; // O2 + wdot[10] += q; // HO2 + wdot[27] -= q; // NNH + // d()/d[N2] + dqdci = -k_r * sc[10]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[37] -= dqdci; // dwdot[O2]/d[N2] + J[42] += dqdci; // dwdot[HO2]/d[N2] + J[59] -= dqdci; // dwdot[NNH]/d[N2] + // d()/d[O2] + dqdci = +k_f * sc[27]; + J[161] += dqdci; // dwdot[N2]/d[O2] + J[165] -= dqdci; // dwdot[O2]/d[O2] + J[170] += dqdci; // dwdot[HO2]/d[O2] + J[187] -= dqdci; // dwdot[NNH]/d[O2] + // d()/d[HO2] + dqdci = -k_r * sc[1]; + J[321] += dqdci; // dwdot[N2]/d[HO2] + J[325] -= dqdci; // dwdot[O2]/d[HO2] + J[330] += dqdci; // dwdot[HO2]/d[HO2] + J[347] -= dqdci; // dwdot[NNH]/d[HO2] + // d()/d[NNH] + dqdci = +k_f * sc[5]; + J[865] += dqdci; // dwdot[N2]/d[NNH] + J[869] -= dqdci; // dwdot[O2]/d[NNH] + J[874] += dqdci; // dwdot[HO2]/d[NNH] + J[891] -= dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + J[1019] -= dqdT; // dwdot[NNH]/dT + + // reaction 136: NH2 + NNH <=> N2 + NH3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[27] * sc[28]; + k_f = 0.92 * exp(1.94 * logT - (-579.655277340457) * invT); + dlnkfdT = 1.94 * invT + (-579.655277340457) * invT2; + // reverse + phi_r = sc[1] * sc[22]; + Kc = exp(-g_RT[1] - g_RT[22] + g_RT[27] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[27] + h_RT[28]) + (h_RT[1] + h_RT[22])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[22] += q; // NH3 + wdot[27] -= q; // NNH + wdot[28] -= q; // NH2 + // d()/d[N2] + dqdci = -k_r * sc[22]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[54] += dqdci; // dwdot[NH3]/d[N2] + J[59] -= dqdci; // dwdot[NNH]/d[N2] + J[60] -= dqdci; // dwdot[NH2]/d[N2] + // d()/d[NH3] + dqdci = -k_r * sc[1]; + J[705] += dqdci; // dwdot[N2]/d[NH3] + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[731] -= dqdci; // dwdot[NNH]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NNH] + dqdci = +k_f * sc[28]; + J[865] += dqdci; // dwdot[N2]/d[NNH] + J[886] += dqdci; // dwdot[NH3]/d[NNH] + J[891] -= dqdci; // dwdot[NNH]/d[NNH] + J[892] -= dqdci; // dwdot[NH2]/d[NNH] + // d()/d[NH2] + dqdci = +k_f * sc[27]; + J[897] += dqdci; // dwdot[N2]/d[NH2] + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[923] -= dqdci; // dwdot[NNH]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1019] -= dqdT; // dwdot[NNH]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 137: HO2 + NNH <=> H2O2 + N2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[27]; + k_f = 0.014 * exp(2.69 * logT - (-804.895056954649) * invT); + dlnkfdT = 2.69 * invT + (-804.895056954649) * invT2; + // reverse + phi_r = sc[1] * sc[9]; + Kc = exp(-g_RT[1] - g_RT[9] + g_RT[10] + g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[27]) + (h_RT[1] + h_RT[9])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[9] += q; // H2O2 + wdot[10] -= q; // HO2 + wdot[27] -= q; // NNH + // d()/d[N2] + dqdci = -k_r * sc[9]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[41] += dqdci; // dwdot[H2O2]/d[N2] + J[42] -= dqdci; // dwdot[HO2]/d[N2] + J[59] -= dqdci; // dwdot[NNH]/d[N2] + // d()/d[H2O2] + dqdci = -k_r * sc[1]; + J[289] += dqdci; // dwdot[N2]/d[H2O2] + J[297] += dqdci; // dwdot[H2O2]/d[H2O2] + J[298] -= dqdci; // dwdot[HO2]/d[H2O2] + J[315] -= dqdci; // dwdot[NNH]/d[H2O2] + // d()/d[HO2] + dqdci = +k_f * sc[27]; + J[321] += dqdci; // dwdot[N2]/d[HO2] + J[329] += dqdci; // dwdot[H2O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[347] -= dqdci; // dwdot[NNH]/d[HO2] + // d()/d[NNH] + dqdci = +k_f * sc[10]; + J[865] += dqdci; // dwdot[N2]/d[NNH] + J[873] += dqdci; // dwdot[H2O2]/d[NNH] + J[874] -= dqdci; // dwdot[HO2]/d[NNH] + J[891] -= dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[1001] += dqdT; // dwdot[H2O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1019] -= dqdT; // dwdot[NNH]/dT + + // reaction 138: NNH + NO <=> HNO + N2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[11] * sc[27]; + k_f = 50000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[1] * sc[14]; + Kc = exp(-g_RT[1] + g_RT[11] - g_RT[14] + g_RT[27]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[11] + h_RT[27]) + (h_RT[1] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[11] -= q; // NO + wdot[14] += q; // HNO + wdot[27] -= q; // NNH + // d()/d[N2] + dqdci = -k_r * sc[14]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[43] -= dqdci; // dwdot[NO]/d[N2] + J[46] += dqdci; // dwdot[HNO]/d[N2] + J[59] -= dqdci; // dwdot[NNH]/d[N2] + // d()/d[NO] + dqdci = +k_f * sc[27]; + J[353] += dqdci; // dwdot[N2]/d[NO] + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[366] += dqdci; // dwdot[HNO]/d[NO] + J[379] -= dqdci; // dwdot[NNH]/d[NO] + // d()/d[HNO] + dqdci = -k_r * sc[1]; + J[449] += dqdci; // dwdot[N2]/d[HNO] + J[459] -= dqdci; // dwdot[NO]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[475] -= dqdci; // dwdot[NNH]/d[HNO] + // d()/d[NNH] + dqdci = +k_f * sc[11]; + J[865] += dqdci; // dwdot[N2]/d[NNH] + J[875] -= dqdci; // dwdot[NO]/d[NNH] + J[878] += dqdci; // dwdot[HNO]/d[NNH] + J[891] -= dqdci; // dwdot[NNH]/d[NNH] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1019] -= dqdT; // dwdot[NNH]/dT + + // reaction 139: HO2 + NO <=> NO2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[11]; + k_f = 2110000 * exp(-(-241.543999586265) * invT); + dlnkfdT = (-241.543999586265) * invT2; + // reverse + phi_r = sc[8] * sc[13]; + Kc = exp(-g_RT[8] + g_RT[10] + g_RT[11] - g_RT[13]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[11]) + (h_RT[8] + h_RT[13])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[8] += q; // OH + wdot[10] -= q; // HO2 + wdot[11] -= q; // NO + wdot[13] += q; // NO2 + // d()/d[OH] + dqdci = -k_r * sc[13]; + J[264] += dqdci; // dwdot[OH]/d[OH] + J[266] -= dqdci; // dwdot[HO2]/d[OH] + J[267] -= dqdci; // dwdot[NO]/d[OH] + J[269] += dqdci; // dwdot[NO2]/d[OH] + // d()/d[HO2] + dqdci = +k_f * sc[11]; + J[328] += dqdci; // dwdot[OH]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[331] -= dqdci; // dwdot[NO]/d[HO2] + J[333] += dqdci; // dwdot[NO2]/d[HO2] + // d()/d[NO] + dqdci = +k_f * sc[10]; + J[360] += dqdci; // dwdot[OH]/d[NO] + J[362] -= dqdci; // dwdot[HO2]/d[NO] + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[365] += dqdci; // dwdot[NO2]/d[NO] + // d()/d[NO2] + dqdci = -k_r * sc[8]; + J[424] += dqdci; // dwdot[OH]/d[NO2] + J[426] -= dqdci; // dwdot[HO2]/d[NO2] + J[427] -= dqdci; // dwdot[NO]/d[NO2] + J[429] += dqdci; // dwdot[NO2]/d[NO2] + // d()/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + + // reaction 141: NO + OH <=> HONO + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[8] * sc[11]; + k_f = 3.06167047673713e+17 * + exp(-4.17057130369966 * logT - (814.305516509223) * invT); + dlnkfdT = -4.17057130369966 * invT + (814.305516509223) * invT2; + // reverse + phi_r = sc[16]; + Kc = refCinv * exp(g_RT[8] + g_RT[11] - g_RT[16]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[11]) + (h_RT[16]) + 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[8] -= q; // OH + wdot[11] -= q; // NO + wdot[16] += q; // HONO + // d()/d[OH] + dqdci = +k_f * sc[11]; + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[267] -= dqdci; // dwdot[NO]/d[OH] + J[272] += dqdci; // dwdot[HONO]/d[OH] + // d()/d[NO] + dqdci = +k_f * sc[8]; + J[360] -= dqdci; // dwdot[OH]/d[NO] + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[368] += dqdci; // dwdot[HONO]/d[NO] + // d()/d[HONO] + dqdci = -k_r; + J[520] -= dqdci; // dwdot[OH]/d[HONO] + J[523] -= dqdci; // dwdot[NO]/d[HONO] + J[528] += dqdci; // dwdot[HONO]/d[HONO] + // d()/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1008] += dqdT; // dwdot[HONO]/dT + + // reaction 142: HNO <=> H + NO + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[14]; + k_f = 1.80302380411298e+20 * + exp(-3.00807431596138 * logT - (24093.7608096018) * invT); + dlnkfdT = -3.00807431596138 * invT + (24093.7608096018) * invT2; + // reverse + phi_r = sc[4] * sc[11]; + Kc = refC * exp(-g_RT[4] - g_RT[11] + g_RT[14]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[14]) + (h_RT[4] + h_RT[11]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[11] += q; // NO + wdot[14] -= q; // HNO + // d()/d[H] + dqdci = -k_r * sc[11]; + J[132] += dqdci; // dwdot[H]/d[H] + J[139] += dqdci; // dwdot[NO]/d[H] + J[142] -= dqdci; // dwdot[HNO]/d[H] + // d()/d[NO] + dqdci = -k_r * sc[4]; + J[356] += dqdci; // dwdot[H]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[366] -= dqdci; // dwdot[HNO]/d[NO] + // d()/d[HNO] + dqdci = +k_f; + J[452] += dqdci; // dwdot[H]/d[HNO] + J[459] += dqdci; // dwdot[NO]/d[HNO] + J[462] -= dqdci; // dwdot[HNO]/d[HNO] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1006] -= dqdT; // dwdot[HNO]/dT + + // reaction 143: H + HNO <=> H2 + NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[14]; + k_f = 968000 * exp(0.62 * logT - (181.157999689699) * invT); + dlnkfdT = 0.62 * invT + (181.157999689699) * invT2; + // reverse + phi_r = sc[3] * sc[11]; + Kc = exp(-g_RT[3] + g_RT[4] - g_RT[11] + g_RT[14]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[14]) + (h_RT[3] + h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[11] += q; // NO + wdot[14] -= q; // HNO + // d()/d[H2] + dqdci = -k_r * sc[11]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[107] += dqdci; // dwdot[NO]/d[H2] + J[110] -= dqdci; // dwdot[HNO]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[14]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[139] += dqdci; // dwdot[NO]/d[H] + J[142] -= dqdci; // dwdot[HNO]/d[H] + // d()/d[NO] + dqdci = -k_r * sc[3]; + J[355] += dqdci; // dwdot[H2]/d[NO] + J[356] -= dqdci; // dwdot[H]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[366] -= dqdci; // dwdot[HNO]/d[NO] + // d()/d[HNO] + dqdci = +k_f * sc[4]; + J[451] += dqdci; // dwdot[H2]/d[HNO] + J[452] -= dqdci; // dwdot[H]/d[HNO] + J[459] += dqdci; // dwdot[NO]/d[HNO] + J[462] -= dqdci; // dwdot[HNO]/d[HNO] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1006] -= dqdT; // dwdot[HNO]/dT + + // reaction 144: HNO + O <=> NO + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[14]; + k_f = 22900000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[8] * sc[11]; + Kc = exp(g_RT[6] - g_RT[8] - g_RT[11] + g_RT[14]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[14]) + (h_RT[8] + h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[11] += q; // NO + wdot[14] -= q; // HNO + // d()/d[O] + dqdci = +k_f * sc[14]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[203] += dqdci; // dwdot[NO]/d[O] + J[206] -= dqdci; // dwdot[HNO]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[11]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[267] += dqdci; // dwdot[NO]/d[OH] + J[270] -= dqdci; // dwdot[HNO]/d[OH] + // d()/d[NO] + dqdci = -k_r * sc[8]; + J[358] -= dqdci; // dwdot[O]/d[NO] + J[360] += dqdci; // dwdot[OH]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[366] -= dqdci; // dwdot[HNO]/d[NO] + // d()/d[HNO] + dqdci = +k_f * sc[6]; + J[454] -= dqdci; // dwdot[O]/d[HNO] + J[456] += dqdci; // dwdot[OH]/d[HNO] + J[459] += dqdci; // dwdot[NO]/d[HNO] + J[462] -= dqdci; // dwdot[HNO]/d[HNO] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1006] -= dqdT; // dwdot[HNO]/dT + + // reaction 145: HNO + OH <=> H + HONO + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[8] * sc[14]; + k_f = 0.00147617423719835 * + exp(2.72022852147986 * logT - (2291.20021238776) * invT); + dlnkfdT = 2.72022852147986 * invT + (2291.20021238776) * invT2; + // reverse + phi_r = sc[4] * sc[16]; + Kc = exp(-g_RT[4] + g_RT[8] + g_RT[14] - g_RT[16]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[14]) + (h_RT[4] + h_RT[16])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] += q; // H + wdot[8] -= q; // OH + wdot[14] -= q; // HNO + wdot[16] += q; // HONO + // d()/d[H] + dqdci = -k_r * sc[16]; + J[132] += dqdci; // dwdot[H]/d[H] + J[136] -= dqdci; // dwdot[OH]/d[H] + J[142] -= dqdci; // dwdot[HNO]/d[H] + J[144] += dqdci; // dwdot[HONO]/d[H] + // d()/d[OH] + dqdci = +k_f * sc[14]; + J[260] += dqdci; // dwdot[H]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[270] -= dqdci; // dwdot[HNO]/d[OH] + J[272] += dqdci; // dwdot[HONO]/d[OH] + // d()/d[HNO] + dqdci = +k_f * sc[8]; + J[452] += dqdci; // dwdot[H]/d[HNO] + J[456] -= dqdci; // dwdot[OH]/d[HNO] + J[462] -= dqdci; // dwdot[HNO]/d[HNO] + J[464] += dqdci; // dwdot[HONO]/d[HNO] + // d()/d[HONO] + dqdci = -k_r * sc[4]; + J[516] += dqdci; // dwdot[H]/d[HONO] + J[520] -= dqdci; // dwdot[OH]/d[HONO] + J[526] -= dqdci; // dwdot[HNO]/d[HONO] + J[528] += dqdci; // dwdot[HONO]/d[HONO] + // d()/dT + J[996] += dqdT; // dwdot[H]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1006] -= dqdT; // dwdot[HNO]/dT + J[1008] += dqdT; // dwdot[HONO]/dT + + // reaction 146: HNO + OH <=> H2O + NO + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[8] * sc[14]; + k_f = + 62955.2322092157 * exp(0.390114260739931 * logT - (1903.061933838) * invT); + dlnkfdT = 0.390114260739931 * invT + (1903.061933838) * invT2; + // reverse + phi_r = sc[7] * sc[11]; + Kc = exp(-g_RT[7] + g_RT[8] - g_RT[11] + g_RT[14]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[14]) + (h_RT[7] + h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[11] += q; // NO + wdot[14] -= q; // HNO + // d()/d[H2O] + dqdci = -k_r * sc[11]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[235] += dqdci; // dwdot[NO]/d[H2O] + J[238] -= dqdci; // dwdot[HNO]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[14]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[267] += dqdci; // dwdot[NO]/d[OH] + J[270] -= dqdci; // dwdot[HNO]/d[OH] + // d()/d[NO] + dqdci = -k_r * sc[7]; + J[359] += dqdci; // dwdot[H2O]/d[NO] + J[360] -= dqdci; // dwdot[OH]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[366] -= dqdci; // dwdot[HNO]/d[NO] + // d()/d[HNO] + dqdci = +k_f * sc[8]; + J[455] += dqdci; // dwdot[H2O]/d[HNO] + J[456] -= dqdci; // dwdot[OH]/d[HNO] + J[459] += dqdci; // dwdot[NO]/d[HNO] + J[462] -= dqdci; // dwdot[HNO]/d[HNO] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1006] -= dqdT; // dwdot[HNO]/dT + + // reaction 147: HNO + O2 <=> HO2 + NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[5] * sc[14]; + k_f = 20000000 * exp(-(7495.9154538271) * invT); + dlnkfdT = (7495.9154538271) * invT2; + // reverse + phi_r = sc[10] * sc[11]; + Kc = exp(g_RT[5] - g_RT[10] - g_RT[11] + g_RT[14]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[5] + h_RT[14]) + (h_RT[10] + h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] -= q; // O2 + wdot[10] += q; // HO2 + wdot[11] += q; // NO + wdot[14] -= q; // HNO + // d()/d[O2] + dqdci = +k_f * sc[14]; + J[165] -= dqdci; // dwdot[O2]/d[O2] + J[170] += dqdci; // dwdot[HO2]/d[O2] + J[171] += dqdci; // dwdot[NO]/d[O2] + J[174] -= dqdci; // dwdot[HNO]/d[O2] + // d()/d[HO2] + dqdci = -k_r * sc[11]; + J[325] -= dqdci; // dwdot[O2]/d[HO2] + J[330] += dqdci; // dwdot[HO2]/d[HO2] + J[331] += dqdci; // dwdot[NO]/d[HO2] + J[334] -= dqdci; // dwdot[HNO]/d[HO2] + // d()/d[NO] + dqdci = -k_r * sc[10]; + J[357] -= dqdci; // dwdot[O2]/d[NO] + J[362] += dqdci; // dwdot[HO2]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[366] -= dqdci; // dwdot[HNO]/d[NO] + // d()/d[HNO] + dqdci = +k_f * sc[5]; + J[453] -= dqdci; // dwdot[O2]/d[HNO] + J[458] += dqdci; // dwdot[HO2]/d[HNO] + J[459] += dqdci; // dwdot[NO]/d[HNO] + J[462] -= dqdci; // dwdot[HNO]/d[HNO] + // d()/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1006] -= dqdT; // dwdot[HNO]/dT + + // reaction 148: HNO + NH2 <=> NH3 + NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[14] * sc[28]; + k_f = 36.7 * exp(1.63 * logT - (-629.0208322559) * invT); + dlnkfdT = 1.63 * invT + (-629.0208322559) * invT2; + // reverse + phi_r = sc[11] * sc[22]; + Kc = exp(-g_RT[11] + g_RT[14] - g_RT[22] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[14] + h_RT[28]) + (h_RT[11] + h_RT[22])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[11] += q; // NO + wdot[14] -= q; // HNO + wdot[22] += q; // NH3 + wdot[28] -= q; // NH2 + // d()/d[NO] + dqdci = -k_r * sc[22]; + J[363] += dqdci; // dwdot[NO]/d[NO] + J[366] -= dqdci; // dwdot[HNO]/d[NO] + J[374] += dqdci; // dwdot[NH3]/d[NO] + J[380] -= dqdci; // dwdot[NH2]/d[NO] + // d()/d[HNO] + dqdci = +k_f * sc[28]; + J[459] += dqdci; // dwdot[NO]/d[HNO] + J[462] -= dqdci; // dwdot[HNO]/d[HNO] + J[470] += dqdci; // dwdot[NH3]/d[HNO] + J[476] -= dqdci; // dwdot[NH2]/d[HNO] + // d()/d[NH3] + dqdci = -k_r * sc[11]; + J[715] += dqdci; // dwdot[NO]/d[NH3] + J[718] -= dqdci; // dwdot[HNO]/d[NH3] + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NH2] + dqdci = +k_f * sc[14]; + J[907] += dqdci; // dwdot[NO]/d[NH2] + J[910] -= dqdci; // dwdot[HNO]/d[NH2] + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1006] -= dqdT; // dwdot[HNO]/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 149: HNO + NO <=> N2O + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[11] * sc[14]; + k_f = 8510000 * exp(-(14900.2454744777) * invT); + dlnkfdT = (14900.2454744777) * invT2; + // reverse + phi_r = sc[8] * sc[12]; + Kc = exp(-g_RT[8] + g_RT[11] - g_RT[12] + g_RT[14]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[11] + h_RT[14]) + (h_RT[8] + h_RT[12])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[8] += q; // OH + wdot[11] -= q; // NO + wdot[12] += q; // N2O + wdot[14] -= q; // HNO + // d()/d[OH] + dqdci = -k_r * sc[12]; + J[264] += dqdci; // dwdot[OH]/d[OH] + J[267] -= dqdci; // dwdot[NO]/d[OH] + J[268] += dqdci; // dwdot[N2O]/d[OH] + J[270] -= dqdci; // dwdot[HNO]/d[OH] + // d()/d[NO] + dqdci = +k_f * sc[14]; + J[360] += dqdci; // dwdot[OH]/d[NO] + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[364] += dqdci; // dwdot[N2O]/d[NO] + J[366] -= dqdci; // dwdot[HNO]/d[NO] + // d()/d[N2O] + dqdci = -k_r * sc[8]; + J[392] += dqdci; // dwdot[OH]/d[N2O] + J[395] -= dqdci; // dwdot[NO]/d[N2O] + J[396] += dqdci; // dwdot[N2O]/d[N2O] + J[398] -= dqdci; // dwdot[HNO]/d[N2O] + // d()/d[HNO] + dqdci = +k_f * sc[11]; + J[456] += dqdci; // dwdot[OH]/d[HNO] + J[459] -= dqdci; // dwdot[NO]/d[HNO] + J[460] += dqdci; // dwdot[N2O]/d[HNO] + J[462] -= dqdci; // dwdot[HNO]/d[HNO] + // d()/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1004] += dqdT; // dwdot[N2O]/dT + J[1006] -= dqdT; // dwdot[HNO]/dT + + // reaction 150: HNO + NO2 <=> HONO + NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[13] * sc[14]; + k_f = 0.0442 * exp(2.64 * logT - (2033.80047651635) * invT); + dlnkfdT = 2.64 * invT + (2033.80047651635) * invT2; + // reverse + phi_r = sc[11] * sc[16]; + Kc = exp(-g_RT[11] + g_RT[13] + g_RT[14] - g_RT[16]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[13] + h_RT[14]) + (h_RT[11] + h_RT[16])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[11] += q; // NO + wdot[13] -= q; // NO2 + wdot[14] -= q; // HNO + wdot[16] += q; // HONO + // d()/d[NO] + dqdci = -k_r * sc[16]; + J[363] += dqdci; // dwdot[NO]/d[NO] + J[365] -= dqdci; // dwdot[NO2]/d[NO] + J[366] -= dqdci; // dwdot[HNO]/d[NO] + J[368] += dqdci; // dwdot[HONO]/d[NO] + // d()/d[NO2] + dqdci = +k_f * sc[14]; + J[427] += dqdci; // dwdot[NO]/d[NO2] + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[430] -= dqdci; // dwdot[HNO]/d[NO2] + J[432] += dqdci; // dwdot[HONO]/d[NO2] + // d()/d[HNO] + dqdci = +k_f * sc[13]; + J[459] += dqdci; // dwdot[NO]/d[HNO] + J[461] -= dqdci; // dwdot[NO2]/d[HNO] + J[462] -= dqdci; // dwdot[HNO]/d[HNO] + J[464] += dqdci; // dwdot[HONO]/d[HNO] + // d()/d[HONO] + dqdci = -k_r * sc[11]; + J[523] += dqdci; // dwdot[NO]/d[HONO] + J[525] -= dqdci; // dwdot[NO2]/d[HONO] + J[526] -= dqdci; // dwdot[HNO]/d[HONO] + J[528] += dqdci; // dwdot[HONO]/d[HONO] + // d()/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1006] -= dqdT; // dwdot[HNO]/dT + J[1008] += dqdT; // dwdot[HONO]/dT + + // reaction 151: HNO + NO2 <=> HNO2 + NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[13] * sc[14]; + k_f = 603000 * exp(-(1001.40116495139) * invT); + dlnkfdT = (1001.40116495139) * invT2; + // reverse + phi_r = sc[11] * sc[15]; + Kc = exp(-g_RT[11] + g_RT[13] + g_RT[14] - g_RT[15]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[13] + h_RT[14]) + (h_RT[11] + h_RT[15])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[11] += q; // NO + wdot[13] -= q; // NO2 + wdot[14] -= q; // HNO + wdot[15] += q; // HNO2 + // d()/d[NO] + dqdci = -k_r * sc[15]; + J[363] += dqdci; // dwdot[NO]/d[NO] + J[365] -= dqdci; // dwdot[NO2]/d[NO] + J[366] -= dqdci; // dwdot[HNO]/d[NO] + J[367] += dqdci; // dwdot[HNO2]/d[NO] + // d()/d[NO2] + dqdci = +k_f * sc[14]; + J[427] += dqdci; // dwdot[NO]/d[NO2] + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[430] -= dqdci; // dwdot[HNO]/d[NO2] + J[431] += dqdci; // dwdot[HNO2]/d[NO2] + // d()/d[HNO] + dqdci = +k_f * sc[13]; + J[459] += dqdci; // dwdot[NO]/d[HNO] + J[461] -= dqdci; // dwdot[NO2]/d[HNO] + J[462] -= dqdci; // dwdot[HNO]/d[HNO] + J[463] += dqdci; // dwdot[HNO2]/d[HNO] + // d()/d[HNO2] + dqdci = -k_r * sc[11]; + J[491] += dqdci; // dwdot[NO]/d[HNO2] + J[493] -= dqdci; // dwdot[NO2]/d[HNO2] + J[494] -= dqdci; // dwdot[HNO]/d[HNO2] + J[495] += dqdci; // dwdot[HNO2]/d[HNO2] + // d()/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1006] -= dqdT; // dwdot[HNO]/dT + J[1007] += dqdT; // dwdot[HNO2]/dT + + // reaction 152: 2 HNO <=> H2O + N2O + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = (sc[14] * sc[14]); + k_f = 843 * exp(-(1559.97166399463) * invT); + dlnkfdT = (1559.97166399463) * invT2; + // reverse + phi_r = sc[7] * sc[12]; + Kc = exp(-g_RT[7] - g_RT[12] + 2.000000 * g_RT[14]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(2.000000 * h_RT[14]) + (h_RT[7] + h_RT[12])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[12] += q; // N2O + wdot[14] -= 2 * q; // HNO + // d()/d[H2O] + dqdci = -k_r * sc[12]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[236] += dqdci; // dwdot[N2O]/d[H2O] + J[238] += -2 * dqdci; // dwdot[HNO]/d[H2O] + // d()/d[N2O] + dqdci = -k_r * sc[7]; + J[391] += dqdci; // dwdot[H2O]/d[N2O] + J[396] += dqdci; // dwdot[N2O]/d[N2O] + J[398] += -2 * dqdci; // dwdot[HNO]/d[N2O] + // d()/d[HNO] + dqdci = +k_f * 2.000000 * sc[14]; + J[455] += dqdci; // dwdot[H2O]/d[HNO] + J[460] += dqdci; // dwdot[N2O]/d[HNO] + J[462] += -2 * dqdci; // dwdot[HNO]/d[HNO] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1004] += dqdT; // dwdot[N2O]/dT + J[1006] += -2 * dqdT; // dwdot[HNO]/dT + + // reaction 153: HNO + HO2 <=> HNO2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[14]; + k_f = 0.002 * exp(2.36 * logT - (4518.88565892638) * invT); + dlnkfdT = 2.36 * invT + (4518.88565892638) * invT2; + // reverse + phi_r = sc[8] * sc[15]; + Kc = exp(-g_RT[8] + g_RT[10] + g_RT[14] - g_RT[15]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[14]) + (h_RT[8] + h_RT[15])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[8] += q; // OH + wdot[10] -= q; // HO2 + wdot[14] -= q; // HNO + wdot[15] += q; // HNO2 + // d()/d[OH] + dqdci = -k_r * sc[15]; + J[264] += dqdci; // dwdot[OH]/d[OH] + J[266] -= dqdci; // dwdot[HO2]/d[OH] + J[270] -= dqdci; // dwdot[HNO]/d[OH] + J[271] += dqdci; // dwdot[HNO2]/d[OH] + // d()/d[HO2] + dqdci = +k_f * sc[14]; + J[328] += dqdci; // dwdot[OH]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[334] -= dqdci; // dwdot[HNO]/d[HO2] + J[335] += dqdci; // dwdot[HNO2]/d[HO2] + // d()/d[HNO] + dqdci = +k_f * sc[10]; + J[456] += dqdci; // dwdot[OH]/d[HNO] + J[458] -= dqdci; // dwdot[HO2]/d[HNO] + J[462] -= dqdci; // dwdot[HNO]/d[HNO] + J[463] += dqdci; // dwdot[HNO2]/d[HNO] + // d()/d[HNO2] + dqdci = -k_r * sc[8]; + J[488] += dqdci; // dwdot[OH]/d[HNO2] + J[490] -= dqdci; // dwdot[HO2]/d[HNO2] + J[494] -= dqdci; // dwdot[HNO]/d[HNO2] + J[495] += dqdci; // dwdot[HNO2]/d[HNO2] + // d()/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1006] -= dqdT; // dwdot[HNO]/dT + J[1007] += dqdT; // dwdot[HNO2]/dT + + // reaction 154: H + HONO <=> H2 + NO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[16]; + k_f = 0.00189 * exp(2.83 * logT - (715.926350440375) * invT); + dlnkfdT = 2.83 * invT + (715.926350440375) * invT2; + // reverse + phi_r = sc[3] * sc[13]; + Kc = exp(-g_RT[3] + g_RT[4] - g_RT[13] + g_RT[16]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[16]) + (h_RT[3] + h_RT[13])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[13] += q; // NO2 + wdot[16] -= q; // HONO + // d()/d[H2] + dqdci = -k_r * sc[13]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[109] += dqdci; // dwdot[NO2]/d[H2] + J[112] -= dqdci; // dwdot[HONO]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[16]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[141] += dqdci; // dwdot[NO2]/d[H] + J[144] -= dqdci; // dwdot[HONO]/d[H] + // d()/d[NO2] + dqdci = -k_r * sc[3]; + J[419] += dqdci; // dwdot[H2]/d[NO2] + J[420] -= dqdci; // dwdot[H]/d[NO2] + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[432] -= dqdci; // dwdot[HONO]/d[NO2] + // d()/d[HONO] + dqdci = +k_f * sc[4]; + J[515] += dqdci; // dwdot[H2]/d[HONO] + J[516] -= dqdci; // dwdot[H]/d[HONO] + J[525] += dqdci; // dwdot[NO2]/d[HONO] + J[528] -= dqdci; // dwdot[HONO]/d[HONO] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1008] -= dqdT; // dwdot[HONO]/dT + + // reaction 155: H + HNO2 <=> H2 + NO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[15]; + k_f = 0.0233 * exp(2.77 * logT - (-1017.45377659056) * invT); + dlnkfdT = 2.77 * invT + (-1017.45377659056) * invT2; + // reverse + phi_r = sc[3] * sc[13]; + Kc = exp(-g_RT[3] + g_RT[4] - g_RT[13] + g_RT[15]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[15]) + (h_RT[3] + h_RT[13])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[13] += q; // NO2 + wdot[15] -= q; // HNO2 + // d()/d[H2] + dqdci = -k_r * sc[13]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[109] += dqdci; // dwdot[NO2]/d[H2] + J[111] -= dqdci; // dwdot[HNO2]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[15]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[141] += dqdci; // dwdot[NO2]/d[H] + J[143] -= dqdci; // dwdot[HNO2]/d[H] + // d()/d[NO2] + dqdci = -k_r * sc[3]; + J[419] += dqdci; // dwdot[H2]/d[NO2] + J[420] -= dqdci; // dwdot[H]/d[NO2] + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[431] -= dqdci; // dwdot[HNO2]/d[NO2] + // d()/d[HNO2] + dqdci = +k_f * sc[4]; + J[483] += dqdci; // dwdot[H2]/d[HNO2] + J[484] -= dqdci; // dwdot[H]/d[HNO2] + J[493] += dqdci; // dwdot[NO2]/d[HNO2] + J[495] -= dqdci; // dwdot[HNO2]/d[HNO2] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1007] -= dqdT; // dwdot[HNO2]/dT + + // reaction 156: H + HONO <=> H2O + NO + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[4] * sc[16]; + k_f = 4296.07864215026 * + exp(0.980114260739931 * logT - (2047.98258379891) * invT); + dlnkfdT = 0.980114260739931 * invT + (2047.98258379891) * invT2; + // reverse + phi_r = sc[7] * sc[11]; + Kc = exp(g_RT[4] - g_RT[7] - g_RT[11] + g_RT[16]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[16]) + (h_RT[7] + h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] -= q; // H + wdot[7] += q; // H2O + wdot[11] += q; // NO + wdot[16] -= q; // HONO + // d()/d[H] + dqdci = +k_f * sc[16]; + J[132] -= dqdci; // dwdot[H]/d[H] + J[135] += dqdci; // dwdot[H2O]/d[H] + J[139] += dqdci; // dwdot[NO]/d[H] + J[144] -= dqdci; // dwdot[HONO]/d[H] + // d()/d[H2O] + dqdci = -k_r * sc[11]; + J[228] -= dqdci; // dwdot[H]/d[H2O] + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[235] += dqdci; // dwdot[NO]/d[H2O] + J[240] -= dqdci; // dwdot[HONO]/d[H2O] + // d()/d[NO] + dqdci = -k_r * sc[7]; + J[356] -= dqdci; // dwdot[H]/d[NO] + J[359] += dqdci; // dwdot[H2O]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[368] -= dqdci; // dwdot[HONO]/d[NO] + // d()/d[HONO] + dqdci = +k_f * sc[4]; + J[516] -= dqdci; // dwdot[H]/d[HONO] + J[519] += dqdci; // dwdot[H2O]/d[HONO] + J[523] += dqdci; // dwdot[NO]/d[HONO] + J[528] -= dqdci; // dwdot[HONO]/d[HONO] + // d()/dT + J[996] -= dqdT; // dwdot[H]/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1008] -= dqdT; // dwdot[HONO]/dT + + // reaction 157: HONO + O <=> NO2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[16]; + k_f = 12100000 * exp(-(2999.17132819613) * invT); + dlnkfdT = (2999.17132819613) * invT2; + // reverse + phi_r = sc[8] * sc[13]; + Kc = exp(g_RT[6] - g_RT[8] - g_RT[13] + g_RT[16]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[16]) + (h_RT[8] + h_RT[13])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[13] += q; // NO2 + wdot[16] -= q; // HONO + // d()/d[O] + dqdci = +k_f * sc[16]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[205] += dqdci; // dwdot[NO2]/d[O] + J[208] -= dqdci; // dwdot[HONO]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[13]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[269] += dqdci; // dwdot[NO2]/d[OH] + J[272] -= dqdci; // dwdot[HONO]/d[OH] + // d()/d[NO2] + dqdci = -k_r * sc[8]; + J[422] -= dqdci; // dwdot[O]/d[NO2] + J[424] += dqdci; // dwdot[OH]/d[NO2] + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[432] -= dqdci; // dwdot[HONO]/d[NO2] + // d()/d[HONO] + dqdci = +k_f * sc[6]; + J[518] -= dqdci; // dwdot[O]/d[HONO] + J[520] += dqdci; // dwdot[OH]/d[HONO] + J[525] += dqdci; // dwdot[NO2]/d[HONO] + J[528] -= dqdci; // dwdot[HONO]/d[HONO] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1008] -= dqdT; // dwdot[HONO]/dT + + // reaction 158: HONO + OH <=> H2O + NO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[16]; + k_f = 1700000 * exp(-(-261.672666218454) * invT); + dlnkfdT = (-261.672666218454) * invT2; + // reverse + phi_r = sc[7] * sc[13]; + Kc = exp(-g_RT[7] + g_RT[8] - g_RT[13] + g_RT[16]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[16]) + (h_RT[7] + h_RT[13])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[13] += q; // NO2 + wdot[16] -= q; // HONO + // d()/d[H2O] + dqdci = -k_r * sc[13]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[237] += dqdci; // dwdot[NO2]/d[H2O] + J[240] -= dqdci; // dwdot[HONO]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[16]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[269] += dqdci; // dwdot[NO2]/d[OH] + J[272] -= dqdci; // dwdot[HONO]/d[OH] + // d()/d[NO2] + dqdci = -k_r * sc[7]; + J[423] += dqdci; // dwdot[H2O]/d[NO2] + J[424] -= dqdci; // dwdot[OH]/d[NO2] + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[432] -= dqdci; // dwdot[HONO]/d[NO2] + // d()/d[HONO] + dqdci = +k_f * sc[8]; + J[519] += dqdci; // dwdot[H2O]/d[HONO] + J[520] -= dqdci; // dwdot[OH]/d[HONO] + J[525] += dqdci; // dwdot[NO2]/d[HONO] + J[528] -= dqdci; // dwdot[HONO]/d[HONO] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1008] -= dqdT; // dwdot[HONO]/dT + + // reaction 159: HONO + NH <=> NH2 + NO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[16] * sc[26]; + k_f = 10000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[13] * sc[28]; + Kc = exp(-g_RT[13] + g_RT[16] + g_RT[26] - g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[16] + h_RT[26]) + (h_RT[13] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[13] += q; // NO2 + wdot[16] -= q; // HONO + wdot[26] -= q; // NH + wdot[28] += q; // NH2 + // d()/d[NO2] + dqdci = -k_r * sc[28]; + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[432] -= dqdci; // dwdot[HONO]/d[NO2] + J[442] -= dqdci; // dwdot[NH]/d[NO2] + J[444] += dqdci; // dwdot[NH2]/d[NO2] + // d()/d[HONO] + dqdci = +k_f * sc[26]; + J[525] += dqdci; // dwdot[NO2]/d[HONO] + J[528] -= dqdci; // dwdot[HONO]/d[HONO] + J[538] -= dqdci; // dwdot[NH]/d[HONO] + J[540] += dqdci; // dwdot[NH2]/d[HONO] + // d()/d[NH] + dqdci = +k_f * sc[16]; + J[845] += dqdci; // dwdot[NO2]/d[NH] + J[848] -= dqdci; // dwdot[HONO]/d[NH] + J[858] -= dqdci; // dwdot[NH]/d[NH] + J[860] += dqdci; // dwdot[NH2]/d[NH] + // d()/d[NH2] + dqdci = -k_r * sc[13]; + J[909] += dqdci; // dwdot[NO2]/d[NH2] + J[912] -= dqdci; // dwdot[HONO]/d[NH2] + J[922] -= dqdci; // dwdot[NH]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1008] -= dqdT; // dwdot[HONO]/dT + J[1018] -= dqdT; // dwdot[NH]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + + // reaction 160: HONO + NH2 <=> NH3 + NO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[16] * sc[28]; + k_f = 0.000317 * exp(2.83 * logT - (-1796.48349692285) * invT); + dlnkfdT = 2.83 * invT + (-1796.48349692285) * invT2; + // reverse + phi_r = sc[13] * sc[22]; + Kc = exp(-g_RT[13] + g_RT[16] - g_RT[22] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[16] + h_RT[28]) + (h_RT[13] + h_RT[22])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[13] += q; // NO2 + wdot[16] -= q; // HONO + wdot[22] += q; // NH3 + wdot[28] -= q; // NH2 + // d()/d[NO2] + dqdci = -k_r * sc[22]; + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[432] -= dqdci; // dwdot[HONO]/d[NO2] + J[438] += dqdci; // dwdot[NH3]/d[NO2] + J[444] -= dqdci; // dwdot[NH2]/d[NO2] + // d()/d[HONO] + dqdci = +k_f * sc[28]; + J[525] += dqdci; // dwdot[NO2]/d[HONO] + J[528] -= dqdci; // dwdot[HONO]/d[HONO] + J[534] += dqdci; // dwdot[NH3]/d[HONO] + J[540] -= dqdci; // dwdot[NH2]/d[HONO] + // d()/d[NH3] + dqdci = -k_r * sc[13]; + J[717] += dqdci; // dwdot[NO2]/d[NH3] + J[720] -= dqdci; // dwdot[HONO]/d[NH3] + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NH2] + dqdci = +k_f * sc[16]; + J[909] += dqdci; // dwdot[NO2]/d[NH2] + J[912] -= dqdci; // dwdot[HONO]/d[NH2] + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1008] -= dqdT; // dwdot[HONO]/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 161: 2 HONO => H2O + NO + NO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = (sc[16] * sc[16]); + k_f = 3.49e-07 * exp(3.64 * logT - (6108.34581953717) * invT); + dlnkfdT = 3.64 * invT + (6108.34581953717) * invT2; + // rate of progress + q = k_f * phi_f; + dqdT = dlnkfdT * k_f * phi_f; + // update wdot + wdot[7] += q; // H2O + wdot[11] += q; // NO + wdot[13] += q; // NO2 + wdot[16] -= 2 * q; // HONO + // d()/d[HONO] + dqdci = +k_f * 2.000000 * sc[16]; + J[519] += dqdci; // dwdot[H2O]/d[HONO] + J[523] += dqdci; // dwdot[NO]/d[HONO] + J[525] += dqdci; // dwdot[NO2]/d[HONO] + J[528] += -2 * dqdci; // dwdot[HONO]/d[HONO] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1008] += -2 * dqdT; // dwdot[HONO]/dT + + // reaction 162: H2NO <=> HNOH + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[29]; + k_f = 1.27962488454253e+27 * + exp(-4.98971416937931 * logT - (22132.033206478) * invT); + dlnkfdT = -4.98971416937931 * invT + (22132.033206478) * invT2; + // reverse + phi_r = sc[21]; + Kc = exp(-g_RT[21] + g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[29]) + (h_RT[21])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[21] += q; // HNOH + wdot[29] -= q; // H2NO + // d()/d[HNOH] + dqdci = -k_r; + J[693] += dqdci; // dwdot[HNOH]/d[HNOH] + J[701] -= dqdci; // dwdot[H2NO]/d[HNOH] + // d()/d[H2NO] + dqdci = +k_f; + J[949] += dqdci; // dwdot[HNOH]/d[H2NO] + J[957] -= dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[1013] += dqdT; // dwdot[HNOH]/dT + J[1021] -= dqdT; // dwdot[H2NO]/dT + + // reaction 164: H + H2NO <=> H2 + HNO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[29]; + k_f = 480 * exp(1.5 * logT - (784.917355322202) * invT); + dlnkfdT = 1.5 * invT + (784.917355322202) * invT2; + // reverse + phi_r = sc[3] * sc[14]; + Kc = exp(-g_RT[3] + g_RT[4] - g_RT[14] + g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[29]) + (h_RT[3] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[3] += q; // H2 + wdot[4] -= q; // H + wdot[14] += q; // HNO + wdot[29] -= q; // H2NO + // d()/d[H2] + dqdci = -k_r * sc[14]; + J[99] += dqdci; // dwdot[H2]/d[H2] + J[100] -= dqdci; // dwdot[H]/d[H2] + J[110] += dqdci; // dwdot[HNO]/d[H2] + J[125] -= dqdci; // dwdot[H2NO]/d[H2] + // d()/d[H] + dqdci = +k_f * sc[29]; + J[131] += dqdci; // dwdot[H2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[142] += dqdci; // dwdot[HNO]/d[H] + J[157] -= dqdci; // dwdot[H2NO]/d[H] + // d()/d[HNO] + dqdci = -k_r * sc[3]; + J[451] += dqdci; // dwdot[H2]/d[HNO] + J[452] -= dqdci; // dwdot[H]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[477] -= dqdci; // dwdot[H2NO]/d[HNO] + // d()/d[H2NO] + dqdci = +k_f * sc[4]; + J[931] += dqdci; // dwdot[H2]/d[H2NO] + J[932] -= dqdci; // dwdot[H]/d[H2NO] + J[942] += dqdci; // dwdot[HNO]/d[H2NO] + J[957] -= dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[995] += dqdT; // dwdot[H2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1021] -= dqdT; // dwdot[H2NO]/dT + + // reaction 165: H + H2NO <=> NH2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[29]; + k_f = 40000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[8] * sc[28]; + Kc = exp(g_RT[4] - g_RT[8] - g_RT[28] + g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[29]) + (h_RT[8] + h_RT[28])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] -= q; // H + wdot[8] += q; // OH + wdot[28] += q; // NH2 + wdot[29] -= q; // H2NO + // d()/d[H] + dqdci = +k_f * sc[29]; + J[132] -= dqdci; // dwdot[H]/d[H] + J[136] += dqdci; // dwdot[OH]/d[H] + J[156] += dqdci; // dwdot[NH2]/d[H] + J[157] -= dqdci; // dwdot[H2NO]/d[H] + // d()/d[OH] + dqdci = -k_r * sc[28]; + J[260] -= dqdci; // dwdot[H]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[284] += dqdci; // dwdot[NH2]/d[OH] + J[285] -= dqdci; // dwdot[H2NO]/d[OH] + // d()/d[NH2] + dqdci = -k_r * sc[8]; + J[900] -= dqdci; // dwdot[H]/d[NH2] + J[904] += dqdci; // dwdot[OH]/d[NH2] + J[924] += dqdci; // dwdot[NH2]/d[NH2] + J[925] -= dqdci; // dwdot[H2NO]/d[NH2] + // d()/d[H2NO] + dqdci = +k_f * sc[4]; + J[932] -= dqdci; // dwdot[H]/d[H2NO] + J[936] += dqdci; // dwdot[OH]/d[H2NO] + J[956] += dqdci; // dwdot[NH2]/d[H2NO] + J[957] -= dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1020] += dqdT; // dwdot[NH2]/dT + J[1021] -= dqdT; // dwdot[H2NO]/dT + + // reaction 166: H2NO + O <=> HNO + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[29]; + k_f = 330 * exp(1.5 * logT - (244.965872913738) * invT); + dlnkfdT = 1.5 * invT + (244.965872913738) * invT2; + // reverse + phi_r = sc[8] * sc[14]; + Kc = exp(g_RT[6] - g_RT[8] - g_RT[14] + g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[29]) + (h_RT[8] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[14] += q; // HNO + wdot[29] -= q; // H2NO + // d()/d[O] + dqdci = +k_f * sc[29]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[206] += dqdci; // dwdot[HNO]/d[O] + J[221] -= dqdci; // dwdot[H2NO]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[14]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[270] += dqdci; // dwdot[HNO]/d[OH] + J[285] -= dqdci; // dwdot[H2NO]/d[OH] + // d()/d[HNO] + dqdci = -k_r * sc[8]; + J[454] -= dqdci; // dwdot[O]/d[HNO] + J[456] += dqdci; // dwdot[OH]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[477] -= dqdci; // dwdot[H2NO]/d[HNO] + // d()/d[H2NO] + dqdci = +k_f * sc[6]; + J[934] -= dqdci; // dwdot[O]/d[H2NO] + J[936] += dqdci; // dwdot[OH]/d[H2NO] + J[942] += dqdci; // dwdot[HNO]/d[H2NO] + J[957] -= dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1021] -= dqdT; // dwdot[H2NO]/dT + + // reaction 167: H2NO + OH <=> H2O + HNO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[29]; + k_f = 2.4 * exp(2 * logT - (599.934908972387) * invT); + dlnkfdT = 2 * invT + (599.934908972387) * invT2; + // reverse + phi_r = sc[7] * sc[14]; + Kc = exp(-g_RT[7] + g_RT[8] - g_RT[14] + g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[29]) + (h_RT[7] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[14] += q; // HNO + wdot[29] -= q; // H2NO + // d()/d[H2O] + dqdci = -k_r * sc[14]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[238] += dqdci; // dwdot[HNO]/d[H2O] + J[253] -= dqdci; // dwdot[H2NO]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[29]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[270] += dqdci; // dwdot[HNO]/d[OH] + J[285] -= dqdci; // dwdot[H2NO]/d[OH] + // d()/d[HNO] + dqdci = -k_r * sc[7]; + J[455] += dqdci; // dwdot[H2O]/d[HNO] + J[456] -= dqdci; // dwdot[OH]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[477] -= dqdci; // dwdot[H2NO]/d[HNO] + // d()/d[H2NO] + dqdci = +k_f * sc[8]; + J[935] += dqdci; // dwdot[H2O]/d[H2NO] + J[936] -= dqdci; // dwdot[OH]/d[H2NO] + J[942] += dqdci; // dwdot[HNO]/d[H2NO] + J[957] -= dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1021] -= dqdT; // dwdot[H2NO]/dT + + // reaction 168: H2NO + NO <=> 2 HNO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[11] * sc[29]; + k_f = 0.02 * exp(2 * logT - (6541.81665546136) * invT); + dlnkfdT = 2 * invT + (6541.81665546136) * invT2; + // reverse + phi_r = (sc[14] * sc[14]); + Kc = exp(g_RT[11] - 2.000000 * g_RT[14] + g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[11] + h_RT[29]) + (2.000000 * h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[11] -= q; // NO + wdot[14] += 2 * q; // HNO + wdot[29] -= q; // H2NO + // d()/d[NO] + dqdci = +k_f * sc[29]; + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[366] += 2 * dqdci; // dwdot[HNO]/d[NO] + J[381] -= dqdci; // dwdot[H2NO]/d[NO] + // d()/d[HNO] + dqdci = -k_r * 2.000000 * sc[14]; + J[459] -= dqdci; // dwdot[NO]/d[HNO] + J[462] += 2 * dqdci; // dwdot[HNO]/d[HNO] + J[477] -= dqdci; // dwdot[H2NO]/d[HNO] + // d()/d[H2NO] + dqdci = +k_f * sc[11]; + J[939] -= dqdci; // dwdot[NO]/d[H2NO] + J[942] += 2 * dqdci; // dwdot[HNO]/d[H2NO] + J[957] -= dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1006] += 2 * dqdT; // dwdot[HNO]/dT + J[1021] -= dqdT; // dwdot[H2NO]/dT + + // reaction 169: H2NO + NO2 <=> HNO + HONO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[13] * sc[29]; + k_f = 600000 * exp(-(1006.43333160944) * invT); + dlnkfdT = (1006.43333160944) * invT2; + // reverse + phi_r = sc[14] * sc[16]; + Kc = exp(g_RT[13] - g_RT[14] - g_RT[16] + g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[13] + h_RT[29]) + (h_RT[14] + h_RT[16])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[13] -= q; // NO2 + wdot[14] += q; // HNO + wdot[16] += q; // HONO + wdot[29] -= q; // H2NO + // d()/d[NO2] + dqdci = +k_f * sc[29]; + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[430] += dqdci; // dwdot[HNO]/d[NO2] + J[432] += dqdci; // dwdot[HONO]/d[NO2] + J[445] -= dqdci; // dwdot[H2NO]/d[NO2] + // d()/d[HNO] + dqdci = -k_r * sc[16]; + J[461] -= dqdci; // dwdot[NO2]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[464] += dqdci; // dwdot[HONO]/d[HNO] + J[477] -= dqdci; // dwdot[H2NO]/d[HNO] + // d()/d[HONO] + dqdci = -k_r * sc[14]; + J[525] -= dqdci; // dwdot[NO2]/d[HONO] + J[526] += dqdci; // dwdot[HNO]/d[HONO] + J[528] += dqdci; // dwdot[HONO]/d[HONO] + J[541] -= dqdci; // dwdot[H2NO]/d[HONO] + // d()/d[H2NO] + dqdci = +k_f * sc[13]; + J[941] -= dqdci; // dwdot[NO2]/d[H2NO] + J[942] += dqdci; // dwdot[HNO]/d[H2NO] + J[944] += dqdci; // dwdot[HONO]/d[H2NO] + J[957] -= dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1008] += dqdT; // dwdot[HONO]/dT + J[1021] -= dqdT; // dwdot[H2NO]/dT + + // reaction 170: H2NO + NH2 <=> HNO + NH3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[28] * sc[29]; + k_f = 1.8 * exp(1.94 * logT - (-291.865666166737) * invT); + dlnkfdT = 1.94 * invT + (-291.865666166737) * invT2; + // reverse + phi_r = sc[14] * sc[22]; + Kc = exp(-g_RT[14] - g_RT[22] + g_RT[28] + g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[28] + h_RT[29]) + (h_RT[14] + h_RT[22])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[14] += q; // HNO + wdot[22] += q; // NH3 + wdot[28] -= q; // NH2 + wdot[29] -= q; // H2NO + // d()/d[HNO] + dqdci = -k_r * sc[22]; + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[470] += dqdci; // dwdot[NH3]/d[HNO] + J[476] -= dqdci; // dwdot[NH2]/d[HNO] + J[477] -= dqdci; // dwdot[H2NO]/d[HNO] + // d()/d[NH3] + dqdci = -k_r * sc[14]; + J[718] += dqdci; // dwdot[HNO]/d[NH3] + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + J[733] -= dqdci; // dwdot[H2NO]/d[NH3] + // d()/d[NH2] + dqdci = +k_f * sc[29]; + J[910] += dqdci; // dwdot[HNO]/d[NH2] + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + J[925] -= dqdci; // dwdot[H2NO]/d[NH2] + // d()/d[H2NO] + dqdci = +k_f * sc[28]; + J[942] += dqdci; // dwdot[HNO]/d[H2NO] + J[950] += dqdci; // dwdot[NH3]/d[H2NO] + J[956] -= dqdci; // dwdot[NH2]/d[H2NO] + J[957] -= dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + J[1021] -= dqdT; // dwdot[H2NO]/dT + + // reaction 171: H2NO + O2 <=> HNO + HO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[5] * sc[29]; + k_f = 0.00023 * exp(2.994 * logT - (8303.07498577788) * invT); + dlnkfdT = 2.994 * invT + (8303.07498577788) * invT2; + // reverse + phi_r = sc[10] * sc[14]; + Kc = exp(g_RT[5] - g_RT[10] - g_RT[14] + g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[5] + h_RT[29]) + (h_RT[10] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] -= q; // O2 + wdot[10] += q; // HO2 + wdot[14] += q; // HNO + wdot[29] -= q; // H2NO + // d()/d[O2] + dqdci = +k_f * sc[29]; + J[165] -= dqdci; // dwdot[O2]/d[O2] + J[170] += dqdci; // dwdot[HO2]/d[O2] + J[174] += dqdci; // dwdot[HNO]/d[O2] + J[189] -= dqdci; // dwdot[H2NO]/d[O2] + // d()/d[HO2] + dqdci = -k_r * sc[14]; + J[325] -= dqdci; // dwdot[O2]/d[HO2] + J[330] += dqdci; // dwdot[HO2]/d[HO2] + J[334] += dqdci; // dwdot[HNO]/d[HO2] + J[349] -= dqdci; // dwdot[H2NO]/d[HO2] + // d()/d[HNO] + dqdci = -k_r * sc[10]; + J[453] -= dqdci; // dwdot[O2]/d[HNO] + J[458] += dqdci; // dwdot[HO2]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[477] -= dqdci; // dwdot[H2NO]/d[HNO] + // d()/d[H2NO] + dqdci = +k_f * sc[5]; + J[933] -= dqdci; // dwdot[O2]/d[H2NO] + J[938] += dqdci; // dwdot[HO2]/d[H2NO] + J[942] += dqdci; // dwdot[HNO]/d[H2NO] + J[957] -= dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[997] -= dqdT; // dwdot[O2]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1021] -= dqdT; // dwdot[H2NO]/dT + + // reaction 172: H2NO + HO2 <=> H2O2 + HNO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[29]; + k_f = 0.336 * exp(2 * logT - (-721.612698763968) * invT); + dlnkfdT = 2 * invT + (-721.612698763968) * invT2; + // reverse + phi_r = sc[9] * sc[14]; + Kc = exp(-g_RT[9] + g_RT[10] - g_RT[14] + g_RT[29]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[29]) + (h_RT[9] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[9] += q; // H2O2 + wdot[10] -= q; // HO2 + wdot[14] += q; // HNO + wdot[29] -= q; // H2NO + // d()/d[H2O2] + dqdci = -k_r * sc[14]; + J[297] += dqdci; // dwdot[H2O2]/d[H2O2] + J[298] -= dqdci; // dwdot[HO2]/d[H2O2] + J[302] += dqdci; // dwdot[HNO]/d[H2O2] + J[317] -= dqdci; // dwdot[H2NO]/d[H2O2] + // d()/d[HO2] + dqdci = +k_f * sc[29]; + J[329] += dqdci; // dwdot[H2O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[334] += dqdci; // dwdot[HNO]/d[HO2] + J[349] -= dqdci; // dwdot[H2NO]/d[HO2] + // d()/d[HNO] + dqdci = -k_r * sc[9]; + J[457] += dqdci; // dwdot[H2O2]/d[HNO] + J[458] -= dqdci; // dwdot[HO2]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[477] -= dqdci; // dwdot[H2NO]/d[HNO] + // d()/d[H2NO] + dqdci = +k_f * sc[10]; + J[937] += dqdci; // dwdot[H2O2]/d[H2NO] + J[938] -= dqdci; // dwdot[HO2]/d[H2NO] + J[942] += dqdci; // dwdot[HNO]/d[H2NO] + J[957] -= dqdci; // dwdot[H2NO]/d[H2NO] + // d()/dT + J[1001] += dqdT; // dwdot[H2O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1021] -= dqdT; // dwdot[H2NO]/dT + + // reaction 173: H + NO3 <=> NO2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[25]; + k_f = 66100000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[8] * sc[13]; + Kc = exp(g_RT[4] - g_RT[8] - g_RT[13] + g_RT[25]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[25]) + (h_RT[8] + h_RT[13])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] -= q; // H + wdot[8] += q; // OH + wdot[13] += q; // NO2 + wdot[25] -= q; // NO3 + // d()/d[H] + dqdci = +k_f * sc[25]; + J[132] -= dqdci; // dwdot[H]/d[H] + J[136] += dqdci; // dwdot[OH]/d[H] + J[141] += dqdci; // dwdot[NO2]/d[H] + J[153] -= dqdci; // dwdot[NO3]/d[H] + // d()/d[OH] + dqdci = -k_r * sc[13]; + J[260] -= dqdci; // dwdot[H]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[269] += dqdci; // dwdot[NO2]/d[OH] + J[281] -= dqdci; // dwdot[NO3]/d[OH] + // d()/d[NO2] + dqdci = -k_r * sc[8]; + J[420] -= dqdci; // dwdot[H]/d[NO2] + J[424] += dqdci; // dwdot[OH]/d[NO2] + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[441] -= dqdci; // dwdot[NO3]/d[NO2] + // d()/d[NO3] + dqdci = +k_f * sc[4]; + J[804] -= dqdci; // dwdot[H]/d[NO3] + J[808] += dqdci; // dwdot[OH]/d[NO3] + J[813] += dqdci; // dwdot[NO2]/d[NO3] + J[825] -= dqdci; // dwdot[NO3]/d[NO3] + // d()/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1017] -= dqdT; // dwdot[NO3]/dT + + // reaction 174: NO3 + O <=> NO2 + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[25]; + k_f = 10240000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[5] * sc[13]; + Kc = exp(-g_RT[5] + g_RT[6] - g_RT[13] + g_RT[25]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[25]) + (h_RT[5] + h_RT[13])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[6] -= q; // O + wdot[13] += q; // NO2 + wdot[25] -= q; // NO3 + // d()/d[O2] + dqdci = -k_r * sc[13]; + J[165] += dqdci; // dwdot[O2]/d[O2] + J[166] -= dqdci; // dwdot[O]/d[O2] + J[173] += dqdci; // dwdot[NO2]/d[O2] + J[185] -= dqdci; // dwdot[NO3]/d[O2] + // d()/d[O] + dqdci = +k_f * sc[25]; + J[197] += dqdci; // dwdot[O2]/d[O] + J[198] -= dqdci; // dwdot[O]/d[O] + J[205] += dqdci; // dwdot[NO2]/d[O] + J[217] -= dqdci; // dwdot[NO3]/d[O] + // d()/d[NO2] + dqdci = -k_r * sc[5]; + J[421] += dqdci; // dwdot[O2]/d[NO2] + J[422] -= dqdci; // dwdot[O]/d[NO2] + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[441] -= dqdci; // dwdot[NO3]/d[NO2] + // d()/d[NO3] + dqdci = +k_f * sc[6]; + J[805] += dqdci; // dwdot[O2]/d[NO3] + J[806] -= dqdci; // dwdot[O]/d[NO3] + J[813] += dqdci; // dwdot[NO2]/d[NO3] + J[825] -= dqdci; // dwdot[NO3]/d[NO3] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1017] -= dqdT; // dwdot[NO3]/dT + + // reaction 175: NO3 + OH <=> HO2 + NO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[25]; + k_f = 14000000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[10] * sc[13]; + Kc = exp(g_RT[8] - g_RT[10] - g_RT[13] + g_RT[25]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[25]) + (h_RT[10] + h_RT[13])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[8] -= q; // OH + wdot[10] += q; // HO2 + wdot[13] += q; // NO2 + wdot[25] -= q; // NO3 + // d()/d[OH] + dqdci = +k_f * sc[25]; + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[266] += dqdci; // dwdot[HO2]/d[OH] + J[269] += dqdci; // dwdot[NO2]/d[OH] + J[281] -= dqdci; // dwdot[NO3]/d[OH] + // d()/d[HO2] + dqdci = -k_r * sc[13]; + J[328] -= dqdci; // dwdot[OH]/d[HO2] + J[330] += dqdci; // dwdot[HO2]/d[HO2] + J[333] += dqdci; // dwdot[NO2]/d[HO2] + J[345] -= dqdci; // dwdot[NO3]/d[HO2] + // d()/d[NO2] + dqdci = -k_r * sc[10]; + J[424] -= dqdci; // dwdot[OH]/d[NO2] + J[426] += dqdci; // dwdot[HO2]/d[NO2] + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[441] -= dqdci; // dwdot[NO3]/d[NO2] + // d()/d[NO3] + dqdci = +k_f * sc[8]; + J[808] -= dqdci; // dwdot[OH]/d[NO3] + J[810] += dqdci; // dwdot[HO2]/d[NO3] + J[813] += dqdci; // dwdot[NO2]/d[NO3] + J[825] -= dqdci; // dwdot[NO3]/d[NO3] + // d()/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1017] -= dqdT; // dwdot[NO3]/dT + + // reaction 176: HO2 + NO3 => NO2 + O2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[25]; + k_f = 1510000; + dlnkfdT = 0.0; + // rate of progress + q = k_f * phi_f; + dqdT = dlnkfdT * k_f * phi_f; + // update wdot + wdot[5] += q; // O2 + wdot[8] += q; // OH + wdot[10] -= q; // HO2 + wdot[13] += q; // NO2 + wdot[25] -= q; // NO3 + // d()/d[HO2] + dqdci = +k_f * sc[25]; + J[325] += dqdci; // dwdot[O2]/d[HO2] + J[328] += dqdci; // dwdot[OH]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[333] += dqdci; // dwdot[NO2]/d[HO2] + J[345] -= dqdci; // dwdot[NO3]/d[HO2] + // d()/d[NO3] + dqdci = +k_f * sc[10]; + J[805] += dqdci; // dwdot[O2]/d[NO3] + J[808] += dqdci; // dwdot[OH]/d[NO3] + J[810] -= dqdci; // dwdot[HO2]/d[NO3] + J[813] += dqdci; // dwdot[NO2]/d[NO3] + J[825] -= dqdci; // dwdot[NO3]/d[NO3] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1017] -= dqdT; // dwdot[NO3]/dT + + // reaction 178: NO3 <=> NO + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[25]; + k_f = 2500000 * exp(-(6098.9859895532) * invT); + dlnkfdT = (6098.9859895532) * invT2; + // reverse + phi_r = sc[5] * sc[11]; + Kc = refC * exp(-g_RT[5] - g_RT[11] + g_RT[25]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[25]) + (h_RT[5] + h_RT[11]) - 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[11] += q; // NO + wdot[25] -= q; // NO3 + // d()/d[O2] + dqdci = -k_r * sc[11]; + J[165] += dqdci; // dwdot[O2]/d[O2] + J[171] += dqdci; // dwdot[NO]/d[O2] + J[185] -= dqdci; // dwdot[NO3]/d[O2] + // d()/d[NO] + dqdci = -k_r * sc[5]; + J[357] += dqdci; // dwdot[O2]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[377] -= dqdci; // dwdot[NO3]/d[NO] + // d()/d[NO3] + dqdci = +k_f; + J[805] += dqdci; // dwdot[O2]/d[NO3] + J[811] += dqdci; // dwdot[NO]/d[NO3] + J[825] -= dqdci; // dwdot[NO3]/d[NO3] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1017] -= dqdT; // dwdot[NO3]/dT + + // reaction 179: 2 NO3 => 2 NO2 + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = (sc[25] * sc[25]); + k_f = 512000 * exp(-(2450.66516246898) * invT); + dlnkfdT = (2450.66516246898) * invT2; + // rate of progress + q = k_f * phi_f; + dqdT = dlnkfdT * k_f * phi_f; + // update wdot + wdot[5] += q; // O2 + wdot[13] += 2 * q; // NO2 + wdot[25] -= 2 * q; // NO3 + // d()/d[NO3] + dqdci = +k_f * 2.000000 * sc[25]; + J[805] += dqdci; // dwdot[O2]/d[NO3] + J[813] += 2 * dqdci; // dwdot[NO2]/d[NO3] + J[825] += -2 * dqdci; // dwdot[NO3]/d[NO3] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[1005] += 2 * dqdT; // dwdot[NO2]/dT + J[1017] += -2 * dqdT; // dwdot[NO3]/dT + + // reaction 180: H + NO2 <=> NO + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[13]; + k_f = 88500000; + dlnkfdT = 0.0; + // reverse + phi_r = sc[8] * sc[11]; + Kc = exp(g_RT[4] - g_RT[8] - g_RT[11] + g_RT[13]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[13]) + (h_RT[8] + h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] -= q; // H + wdot[8] += q; // OH + wdot[11] += q; // NO + wdot[13] -= q; // NO2 + // d()/d[H] + dqdci = +k_f * sc[13]; + J[132] -= dqdci; // dwdot[H]/d[H] + J[136] += dqdci; // dwdot[OH]/d[H] + J[139] += dqdci; // dwdot[NO]/d[H] + J[141] -= dqdci; // dwdot[NO2]/d[H] + // d()/d[OH] + dqdci = -k_r * sc[11]; + J[260] -= dqdci; // dwdot[H]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[267] += dqdci; // dwdot[NO]/d[OH] + J[269] -= dqdci; // dwdot[NO2]/d[OH] + // d()/d[NO] + dqdci = -k_r * sc[8]; + J[356] -= dqdci; // dwdot[H]/d[NO] + J[360] += dqdci; // dwdot[OH]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[365] -= dqdci; // dwdot[NO2]/d[NO] + // d()/d[NO2] + dqdci = +k_f * sc[4]; + J[420] -= dqdci; // dwdot[H]/d[NO2] + J[424] += dqdci; // dwdot[OH]/d[NO2] + J[427] += dqdci; // dwdot[NO]/d[NO2] + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + // d()/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + + // reaction 181: NO2 + O <=> NO + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[13]; + k_f = 3920000 * exp(-(-119.765566461523) * invT); + dlnkfdT = (-119.765566461523) * invT2; + // reverse + phi_r = sc[5] * sc[11]; + Kc = exp(-g_RT[5] + g_RT[6] - g_RT[11] + g_RT[13]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[13]) + (h_RT[5] + h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[6] -= q; // O + wdot[11] += q; // NO + wdot[13] -= q; // NO2 + // d()/d[O2] + dqdci = -k_r * sc[11]; + J[165] += dqdci; // dwdot[O2]/d[O2] + J[166] -= dqdci; // dwdot[O]/d[O2] + J[171] += dqdci; // dwdot[NO]/d[O2] + J[173] -= dqdci; // dwdot[NO2]/d[O2] + // d()/d[O] + dqdci = +k_f * sc[13]; + J[197] += dqdci; // dwdot[O2]/d[O] + J[198] -= dqdci; // dwdot[O]/d[O] + J[203] += dqdci; // dwdot[NO]/d[O] + J[205] -= dqdci; // dwdot[NO2]/d[O] + // d()/d[NO] + dqdci = -k_r * sc[5]; + J[357] += dqdci; // dwdot[O2]/d[NO] + J[358] -= dqdci; // dwdot[O]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[365] -= dqdci; // dwdot[NO2]/d[NO] + // d()/d[NO2] + dqdci = +k_f * sc[6]; + J[421] += dqdci; // dwdot[O2]/d[NO2] + J[422] -= dqdci; // dwdot[O]/d[NO2] + J[427] += dqdci; // dwdot[NO]/d[NO2] + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + + // reaction 183: HO2 + NO2 <=> HONO + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[13]; + k_f = 1.9e-06 * exp(3.32 * logT - (1531.79153070957) * invT); + dlnkfdT = 3.32 * invT + (1531.79153070957) * invT2; + // reverse + phi_r = sc[5] * sc[16]; + Kc = exp(-g_RT[5] + g_RT[10] + g_RT[13] - g_RT[16]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[13]) + (h_RT[5] + h_RT[16])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[10] -= q; // HO2 + wdot[13] -= q; // NO2 + wdot[16] += q; // HONO + // d()/d[O2] + dqdci = -k_r * sc[16]; + J[165] += dqdci; // dwdot[O2]/d[O2] + J[170] -= dqdci; // dwdot[HO2]/d[O2] + J[173] -= dqdci; // dwdot[NO2]/d[O2] + J[176] += dqdci; // dwdot[HONO]/d[O2] + // d()/d[HO2] + dqdci = +k_f * sc[13]; + J[325] += dqdci; // dwdot[O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[333] -= dqdci; // dwdot[NO2]/d[HO2] + J[336] += dqdci; // dwdot[HONO]/d[HO2] + // d()/d[NO2] + dqdci = +k_f * sc[10]; + J[421] += dqdci; // dwdot[O2]/d[NO2] + J[426] -= dqdci; // dwdot[HO2]/d[NO2] + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[432] += dqdci; // dwdot[HONO]/d[NO2] + // d()/d[HONO] + dqdci = -k_r * sc[5]; + J[517] += dqdci; // dwdot[O2]/d[HONO] + J[522] -= dqdci; // dwdot[HO2]/d[HONO] + J[525] -= dqdci; // dwdot[NO2]/d[HONO] + J[528] += dqdci; // dwdot[HONO]/d[HONO] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1008] += dqdT; // dwdot[HONO]/dT + + // reaction 184: HO2 + NO2 <=> HNO2 + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[10] * sc[13]; + k_f = 1.9e-05 * exp(3.26 * logT - (2507.52864570492) * invT); + dlnkfdT = 3.26 * invT + (2507.52864570492) * invT2; + // reverse + phi_r = sc[5] * sc[15]; + Kc = exp(-g_RT[5] + g_RT[10] + g_RT[13] - g_RT[15]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[10] + h_RT[13]) + (h_RT[5] + h_RT[15])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[5] += q; // O2 + wdot[10] -= q; // HO2 + wdot[13] -= q; // NO2 + wdot[15] += q; // HNO2 + // d()/d[O2] + dqdci = -k_r * sc[15]; + J[165] += dqdci; // dwdot[O2]/d[O2] + J[170] -= dqdci; // dwdot[HO2]/d[O2] + J[173] -= dqdci; // dwdot[NO2]/d[O2] + J[175] += dqdci; // dwdot[HNO2]/d[O2] + // d()/d[HO2] + dqdci = +k_f * sc[13]; + J[325] += dqdci; // dwdot[O2]/d[HO2] + J[330] -= dqdci; // dwdot[HO2]/d[HO2] + J[333] -= dqdci; // dwdot[NO2]/d[HO2] + J[335] += dqdci; // dwdot[HNO2]/d[HO2] + // d()/d[NO2] + dqdci = +k_f * sc[10]; + J[421] += dqdci; // dwdot[O2]/d[NO2] + J[426] -= dqdci; // dwdot[HO2]/d[NO2] + J[429] -= dqdci; // dwdot[NO2]/d[NO2] + J[431] += dqdci; // dwdot[HNO2]/d[NO2] + // d()/d[HNO2] + dqdci = -k_r * sc[5]; + J[485] += dqdci; // dwdot[O2]/d[HNO2] + J[490] -= dqdci; // dwdot[HO2]/d[HNO2] + J[493] -= dqdci; // dwdot[NO2]/d[HNO2] + J[495] += dqdci; // dwdot[HNO2]/d[HNO2] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[1002] -= dqdT; // dwdot[HO2]/dT + J[1005] -= dqdT; // dwdot[NO2]/dT + J[1007] += dqdT; // dwdot[HNO2]/dT + + // reaction 185: 2 NO2 => 2 NO + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = (sc[13] * sc[13]); + k_f = 1630000 * exp(-(13098.7298108969) * invT); + dlnkfdT = (13098.7298108969) * invT2; + // rate of progress + q = k_f * phi_f; + dqdT = dlnkfdT * k_f * phi_f; + // update wdot + wdot[5] += q; // O2 + wdot[11] += 2 * q; // NO + wdot[13] -= 2 * q; // NO2 + // d()/d[NO2] + dqdci = +k_f * 2.000000 * sc[13]; + J[421] += dqdci; // dwdot[O2]/d[NO2] + J[427] += 2 * dqdci; // dwdot[NO]/d[NO2] + J[429] += -2 * dqdci; // dwdot[NO2]/d[NO2] + // d()/dT + J[997] += dqdT; // dwdot[O2]/dT + J[1003] += 2 * dqdT; // dwdot[NO]/dT + J[1005] += -2 * dqdT; // dwdot[NO2]/dT + + // reaction 186: 2 NO2 <=> NO + NO3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = (sc[13] * sc[13]); + k_f = 10000000 * exp(-(12982.9899777618) * invT); + dlnkfdT = (12982.9899777618) * invT2; + // reverse + phi_r = sc[11] * sc[25]; + Kc = exp(-g_RT[11] + 2.000000 * g_RT[13] - g_RT[25]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(2.000000 * h_RT[13]) + (h_RT[11] + h_RT[25])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[11] += q; // NO + wdot[13] -= 2 * q; // NO2 + wdot[25] += q; // NO3 + // d()/d[NO] + dqdci = -k_r * sc[25]; + J[363] += dqdci; // dwdot[NO]/d[NO] + J[365] += -2 * dqdci; // dwdot[NO2]/d[NO] + J[377] += dqdci; // dwdot[NO3]/d[NO] + // d()/d[NO2] + dqdci = +k_f * 2.000000 * sc[13]; + J[427] += dqdci; // dwdot[NO]/d[NO2] + J[429] += -2 * dqdci; // dwdot[NO2]/d[NO2] + J[441] += dqdci; // dwdot[NO3]/d[NO2] + // d()/d[NO3] + dqdci = -k_r * sc[11]; + J[811] += dqdci; // dwdot[NO]/d[NO3] + J[813] += -2 * dqdci; // dwdot[NO2]/d[NO3] + J[825] += dqdci; // dwdot[NO3]/d[NO3] + // d()/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1005] += -2 * dqdT; // dwdot[NO2]/dT + J[1017] += dqdT; // dwdot[NO3]/dT + + // reaction 188: H + N2O <=> N2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[12]; + k_f = 25300 * exp(-(2289.63582941147) * invT); + dlnkfdT = (2289.63582941147) * invT2; + // reverse + phi_r = sc[1] * sc[8]; + Kc = exp(-g_RT[1] + g_RT[4] - g_RT[8] + g_RT[12]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[12]) + (h_RT[1] + h_RT[8])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[4] -= q; // H + wdot[8] += q; // OH + wdot[12] -= q; // N2O + // d()/d[N2] + dqdci = -k_r * sc[8]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[36] -= dqdci; // dwdot[H]/d[N2] + J[40] += dqdci; // dwdot[OH]/d[N2] + J[44] -= dqdci; // dwdot[N2O]/d[N2] + // d()/d[H] + dqdci = +k_f * sc[12]; + J[129] += dqdci; // dwdot[N2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[136] += dqdci; // dwdot[OH]/d[H] + J[140] -= dqdci; // dwdot[N2O]/d[H] + // d()/d[OH] + dqdci = -k_r * sc[1]; + J[257] += dqdci; // dwdot[N2]/d[OH] + J[260] -= dqdci; // dwdot[H]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[268] -= dqdci; // dwdot[N2O]/d[OH] + // d()/d[N2O] + dqdci = +k_f * sc[4]; + J[385] += dqdci; // dwdot[N2]/d[N2O] + J[388] -= dqdci; // dwdot[H]/d[N2O] + J[392] += dqdci; // dwdot[OH]/d[N2O] + J[396] -= dqdci; // dwdot[N2O]/d[N2O] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1004] -= dqdT; // dwdot[N2O]/dT + + // reaction 189: H + N2O <=> N2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[4] * sc[12]; + k_f = 500000000 * exp(-(9108.22165106543) * invT); + dlnkfdT = (9108.22165106543) * invT2; + // reverse + phi_r = sc[1] * sc[8]; + Kc = exp(-g_RT[1] + g_RT[4] - g_RT[8] + g_RT[12]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[12]) + (h_RT[1] + h_RT[8])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[4] -= q; // H + wdot[8] += q; // OH + wdot[12] -= q; // N2O + // d()/d[N2] + dqdci = -k_r * sc[8]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[36] -= dqdci; // dwdot[H]/d[N2] + J[40] += dqdci; // dwdot[OH]/d[N2] + J[44] -= dqdci; // dwdot[N2O]/d[N2] + // d()/d[H] + dqdci = +k_f * sc[12]; + J[129] += dqdci; // dwdot[N2]/d[H] + J[132] -= dqdci; // dwdot[H]/d[H] + J[136] += dqdci; // dwdot[OH]/d[H] + J[140] -= dqdci; // dwdot[N2O]/d[H] + // d()/d[OH] + dqdci = -k_r * sc[1]; + J[257] += dqdci; // dwdot[N2]/d[OH] + J[260] -= dqdci; // dwdot[H]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[268] -= dqdci; // dwdot[N2O]/d[OH] + // d()/d[N2O] + dqdci = +k_f * sc[4]; + J[385] += dqdci; // dwdot[N2]/d[N2O] + J[388] -= dqdci; // dwdot[H]/d[N2O] + J[392] += dqdci; // dwdot[OH]/d[N2O] + J[396] -= dqdci; // dwdot[N2O]/d[N2O] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1004] -= dqdT; // dwdot[N2O]/dT + + // reaction 190: N2O + O <=> 2 NO + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[12]; + k_f = 66200000 * exp(-(13400.6598103797) * invT); + dlnkfdT = (13400.6598103797) * invT2; + // reverse + phi_r = (sc[11] * sc[11]); + Kc = exp(g_RT[6] - 2.000000 * g_RT[11] + g_RT[12]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[12]) + (2.000000 * h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[11] += 2 * q; // NO + wdot[12] -= q; // N2O + // d()/d[O] + dqdci = +k_f * sc[12]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[203] += 2 * dqdci; // dwdot[NO]/d[O] + J[204] -= dqdci; // dwdot[N2O]/d[O] + // d()/d[NO] + dqdci = -k_r * 2.000000 * sc[11]; + J[358] -= dqdci; // dwdot[O]/d[NO] + J[363] += 2 * dqdci; // dwdot[NO]/d[NO] + J[364] -= dqdci; // dwdot[N2O]/d[NO] + // d()/d[N2O] + dqdci = +k_f * sc[6]; + J[390] -= dqdci; // dwdot[O]/d[N2O] + J[395] += 2 * dqdci; // dwdot[NO]/d[N2O] + J[396] -= dqdci; // dwdot[N2O]/d[N2O] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1003] += 2 * dqdT; // dwdot[NO]/dT + J[1004] -= dqdT; // dwdot[N2O]/dT + + // reaction 191: N2O + O <=> N2 + O2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[12]; + k_f = 102000000 * exp(-(14100.1309758482) * invT); + dlnkfdT = (14100.1309758482) * invT2; + // reverse + phi_r = sc[1] * sc[5]; + Kc = exp(-g_RT[1] - g_RT[5] + g_RT[6] + g_RT[12]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[12]) + (h_RT[1] + h_RT[5])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[5] += q; // O2 + wdot[6] -= q; // O + wdot[12] -= q; // N2O + // d()/d[N2] + dqdci = -k_r * sc[5]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[37] += dqdci; // dwdot[O2]/d[N2] + J[38] -= dqdci; // dwdot[O]/d[N2] + J[44] -= dqdci; // dwdot[N2O]/d[N2] + // d()/d[O2] + dqdci = -k_r * sc[1]; + J[161] += dqdci; // dwdot[N2]/d[O2] + J[165] += dqdci; // dwdot[O2]/d[O2] + J[166] -= dqdci; // dwdot[O]/d[O2] + J[172] -= dqdci; // dwdot[N2O]/d[O2] + // d()/d[O] + dqdci = +k_f * sc[12]; + J[193] += dqdci; // dwdot[N2]/d[O] + J[197] += dqdci; // dwdot[O2]/d[O] + J[198] -= dqdci; // dwdot[O]/d[O] + J[204] -= dqdci; // dwdot[N2O]/d[O] + // d()/d[N2O] + dqdci = +k_f * sc[6]; + J[385] += dqdci; // dwdot[N2]/d[N2O] + J[389] += dqdci; // dwdot[O2]/d[N2O] + J[390] -= dqdci; // dwdot[O]/d[N2O] + J[396] -= dqdci; // dwdot[N2O]/d[N2O] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[997] += dqdT; // dwdot[O2]/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1004] -= dqdT; // dwdot[N2O]/dT + + // reaction 192: N2O + OH <=> HO2 + N2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[12]; + k_f = 1e-08 * exp(4.72 * logT - (18397.6013018206) * invT); + dlnkfdT = 4.72 * invT + (18397.6013018206) * invT2; + // reverse + phi_r = sc[1] * sc[10]; + Kc = exp(-g_RT[1] + g_RT[8] - g_RT[10] + g_RT[12]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[12]) + (h_RT[1] + h_RT[10])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[8] -= q; // OH + wdot[10] += q; // HO2 + wdot[12] -= q; // N2O + // d()/d[N2] + dqdci = -k_r * sc[10]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[40] -= dqdci; // dwdot[OH]/d[N2] + J[42] += dqdci; // dwdot[HO2]/d[N2] + J[44] -= dqdci; // dwdot[N2O]/d[N2] + // d()/d[OH] + dqdci = +k_f * sc[12]; + J[257] += dqdci; // dwdot[N2]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[266] += dqdci; // dwdot[HO2]/d[OH] + J[268] -= dqdci; // dwdot[N2O]/d[OH] + // d()/d[HO2] + dqdci = -k_r * sc[1]; + J[321] += dqdci; // dwdot[N2]/d[HO2] + J[328] -= dqdci; // dwdot[OH]/d[HO2] + J[330] += dqdci; // dwdot[HO2]/d[HO2] + J[332] -= dqdci; // dwdot[N2O]/d[HO2] + // d()/d[N2O] + dqdci = +k_f * sc[8]; + J[385] += dqdci; // dwdot[N2]/d[N2O] + J[392] -= dqdci; // dwdot[OH]/d[N2O] + J[394] += dqdci; // dwdot[HO2]/d[N2O] + J[396] -= dqdci; // dwdot[N2O]/d[N2O] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1002] += dqdT; // dwdot[HO2]/dT + J[1004] -= dqdT; // dwdot[N2O]/dT + + // reaction 193: N2O + NO <=> N2 + NO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[11] * sc[12]; + k_f = 0.525 * exp(2.23 * logT - (23298.9316267585) * invT); + dlnkfdT = 2.23 * invT + (23298.9316267585) * invT2; + // reverse + phi_r = sc[1] * sc[13]; + Kc = exp(-g_RT[1] + g_RT[11] + g_RT[12] - g_RT[13]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[11] + h_RT[12]) + (h_RT[1] + h_RT[13])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[1] += q; // N2 + wdot[11] -= q; // NO + wdot[12] -= q; // N2O + wdot[13] += q; // NO2 + // d()/d[N2] + dqdci = -k_r * sc[13]; + J[33] += dqdci; // dwdot[N2]/d[N2] + J[43] -= dqdci; // dwdot[NO]/d[N2] + J[44] -= dqdci; // dwdot[N2O]/d[N2] + J[45] += dqdci; // dwdot[NO2]/d[N2] + // d()/d[NO] + dqdci = +k_f * sc[12]; + J[353] += dqdci; // dwdot[N2]/d[NO] + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[364] -= dqdci; // dwdot[N2O]/d[NO] + J[365] += dqdci; // dwdot[NO2]/d[NO] + // d()/d[N2O] + dqdci = +k_f * sc[11]; + J[385] += dqdci; // dwdot[N2]/d[N2O] + J[395] -= dqdci; // dwdot[NO]/d[N2O] + J[396] -= dqdci; // dwdot[N2O]/d[N2O] + J[397] += dqdci; // dwdot[NO2]/d[N2O] + // d()/d[NO2] + dqdci = -k_r * sc[1]; + J[417] += dqdci; // dwdot[N2]/d[NO2] + J[427] -= dqdci; // dwdot[NO]/d[NO2] + J[428] -= dqdci; // dwdot[N2O]/d[NO2] + J[429] += dqdci; // dwdot[NO2]/d[NO2] + // d()/dT + J[993] += dqdT; // dwdot[N2]/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1004] -= dqdT; // dwdot[N2O]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + + // reaction 194: HNO2 + O <=> NO2 + OH + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[6] * sc[15]; + k_f = 170 * exp(1.5 * logT - (1190.30870129448) * invT); + dlnkfdT = 1.5 * invT + (1190.30870129448) * invT2; + // reverse + phi_r = sc[8] * sc[13]; + Kc = exp(g_RT[6] - g_RT[8] - g_RT[13] + g_RT[15]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[6] + h_RT[15]) + (h_RT[8] + h_RT[13])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[6] -= q; // O + wdot[8] += q; // OH + wdot[13] += q; // NO2 + wdot[15] -= q; // HNO2 + // d()/d[O] + dqdci = +k_f * sc[15]; + J[198] -= dqdci; // dwdot[O]/d[O] + J[200] += dqdci; // dwdot[OH]/d[O] + J[205] += dqdci; // dwdot[NO2]/d[O] + J[207] -= dqdci; // dwdot[HNO2]/d[O] + // d()/d[OH] + dqdci = -k_r * sc[13]; + J[262] -= dqdci; // dwdot[O]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[269] += dqdci; // dwdot[NO2]/d[OH] + J[271] -= dqdci; // dwdot[HNO2]/d[OH] + // d()/d[NO2] + dqdci = -k_r * sc[8]; + J[422] -= dqdci; // dwdot[O]/d[NO2] + J[424] += dqdci; // dwdot[OH]/d[NO2] + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[431] -= dqdci; // dwdot[HNO2]/d[NO2] + // d()/d[HNO2] + dqdci = +k_f * sc[6]; + J[486] -= dqdci; // dwdot[O]/d[HNO2] + J[488] += dqdci; // dwdot[OH]/d[HNO2] + J[493] += dqdci; // dwdot[NO2]/d[HNO2] + J[495] -= dqdci; // dwdot[HNO2]/d[HNO2] + // d()/dT + J[998] -= dqdT; // dwdot[O]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1007] -= dqdT; // dwdot[HNO2]/dT + + // reaction 195: HNO2 + OH <=> H2O + NO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[15]; + k_f = 1.2 * exp(2 * logT - (-399.956605981591) * invT); + dlnkfdT = 2 * invT + (-399.956605981591) * invT2; + // reverse + phi_r = sc[7] * sc[13]; + Kc = exp(-g_RT[7] + g_RT[8] - g_RT[13] + g_RT[15]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[15]) + (h_RT[7] + h_RT[13])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[13] += q; // NO2 + wdot[15] -= q; // HNO2 + // d()/d[H2O] + dqdci = -k_r * sc[13]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[237] += dqdci; // dwdot[NO2]/d[H2O] + J[239] -= dqdci; // dwdot[HNO2]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[15]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[269] += dqdci; // dwdot[NO2]/d[OH] + J[271] -= dqdci; // dwdot[HNO2]/d[OH] + // d()/d[NO2] + dqdci = -k_r * sc[7]; + J[423] += dqdci; // dwdot[H2O]/d[NO2] + J[424] -= dqdci; // dwdot[OH]/d[NO2] + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[431] -= dqdci; // dwdot[HNO2]/d[NO2] + // d()/d[HNO2] + dqdci = +k_f * sc[8]; + J[487] += dqdci; // dwdot[H2O]/d[HNO2] + J[488] -= dqdci; // dwdot[OH]/d[HNO2] + J[493] += dqdci; // dwdot[NO2]/d[HNO2] + J[495] -= dqdci; // dwdot[HNO2]/d[HNO2] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1007] -= dqdT; // dwdot[HNO2]/dT + + // reaction 196: HNO2 <=> HONO + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[15]; + k_f = 1.64828721239033e+30 * + exp(-6.47811251253514 * logT - (22326.026173795) * invT); + dlnkfdT = -6.47811251253514 * invT + (22326.026173795) * invT2; + // reverse + phi_r = sc[16]; + Kc = exp(g_RT[15] - g_RT[16]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[15]) + (h_RT[16])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[15] -= q; // HNO2 + wdot[16] += q; // HONO + // d()/d[HNO2] + dqdci = +k_f; + J[495] -= dqdci; // dwdot[HNO2]/d[HNO2] + J[496] += dqdci; // dwdot[HONO]/d[HNO2] + // d()/d[HONO] + dqdci = -k_r; + J[527] -= dqdci; // dwdot[HNO2]/d[HONO] + J[528] += dqdci; // dwdot[HONO]/d[HONO] + // d()/dT + J[1007] -= dqdT; // dwdot[HNO2]/dT + J[1008] += dqdT; // dwdot[HONO]/dT + + // reaction 197: HNO2 + NH2 <=> NH3 + NO2 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[15] * sc[28]; + k_f = 28000 * exp(-(-2898.52799503519) * invT); + dlnkfdT = (-2898.52799503519) * invT2; + // reverse + phi_r = sc[13] * sc[22]; + Kc = exp(-g_RT[13] + g_RT[15] - g_RT[22] + g_RT[28]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[15] + h_RT[28]) + (h_RT[13] + h_RT[22])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[13] += q; // NO2 + wdot[15] -= q; // HNO2 + wdot[22] += q; // NH3 + wdot[28] -= q; // NH2 + // d()/d[NO2] + dqdci = -k_r * sc[22]; + J[429] += dqdci; // dwdot[NO2]/d[NO2] + J[431] -= dqdci; // dwdot[HNO2]/d[NO2] + J[438] += dqdci; // dwdot[NH3]/d[NO2] + J[444] -= dqdci; // dwdot[NH2]/d[NO2] + // d()/d[HNO2] + dqdci = +k_f * sc[28]; + J[493] += dqdci; // dwdot[NO2]/d[HNO2] + J[495] -= dqdci; // dwdot[HNO2]/d[HNO2] + J[502] += dqdci; // dwdot[NH3]/d[HNO2] + J[508] -= dqdci; // dwdot[NH2]/d[HNO2] + // d()/d[NH3] + dqdci = -k_r * sc[13]; + J[717] += dqdci; // dwdot[NO2]/d[NH3] + J[719] -= dqdci; // dwdot[HNO2]/d[NH3] + J[726] += dqdci; // dwdot[NH3]/d[NH3] + J[732] -= dqdci; // dwdot[NH2]/d[NH3] + // d()/d[NH2] + dqdci = +k_f * sc[15]; + J[909] += dqdci; // dwdot[NO2]/d[NH2] + J[911] -= dqdci; // dwdot[HNO2]/d[NH2] + J[918] += dqdci; // dwdot[NH3]/d[NH2] + J[924] -= dqdci; // dwdot[NH2]/d[NH2] + // d()/dT + J[1005] += dqdT; // dwdot[NO2]/dT + J[1007] -= dqdT; // dwdot[HNO2]/dT + J[1014] += dqdT; // dwdot[NH3]/dT + J[1020] -= dqdT; // dwdot[NH2]/dT + + // reaction 198: H + HNO2 <=> H2O + NO + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[4] * sc[15]; + k_f = 3380.11409397342 * exp(1.07 * logT - (2800.41224478498) * invT); + dlnkfdT = 1.07 * invT + (2800.41224478498) * invT2; + // reverse + phi_r = sc[7] * sc[11]; + Kc = exp(g_RT[4] - g_RT[7] - g_RT[11] + g_RT[15]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[15]) + (h_RT[7] + h_RT[11])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] -= q; // H + wdot[7] += q; // H2O + wdot[11] += q; // NO + wdot[15] -= q; // HNO2 + // d()/d[H] + dqdci = +k_f * sc[15]; + J[132] -= dqdci; // dwdot[H]/d[H] + J[135] += dqdci; // dwdot[H2O]/d[H] + J[139] += dqdci; // dwdot[NO]/d[H] + J[143] -= dqdci; // dwdot[HNO2]/d[H] + // d()/d[H2O] + dqdci = -k_r * sc[11]; + J[228] -= dqdci; // dwdot[H]/d[H2O] + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[235] += dqdci; // dwdot[NO]/d[H2O] + J[239] -= dqdci; // dwdot[HNO2]/d[H2O] + // d()/d[NO] + dqdci = -k_r * sc[7]; + J[356] -= dqdci; // dwdot[H]/d[NO] + J[359] += dqdci; // dwdot[H2O]/d[NO] + J[363] += dqdci; // dwdot[NO]/d[NO] + J[367] -= dqdci; // dwdot[HNO2]/d[NO] + // d()/d[HNO2] + dqdci = +k_f * sc[4]; + J[484] -= dqdci; // dwdot[H]/d[HNO2] + J[487] += dqdci; // dwdot[H2O]/d[HNO2] + J[491] += dqdci; // dwdot[NO]/d[HNO2] + J[495] -= dqdci; // dwdot[HNO2]/d[HNO2] + // d()/dT + J[996] -= dqdT; // dwdot[H]/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1003] += dqdT; // dwdot[NO]/dT + J[1007] -= dqdT; // dwdot[HNO2]/dT + + // reaction 199: H + HNO2 <=> HNO + OH + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[4] * sc[15]; + k_f = 36.4965581754801 * exp(1.78 * logT - (2802.89957915971) * invT); + dlnkfdT = 1.78 * invT + (2802.89957915971) * invT2; + // reverse + phi_r = sc[8] * sc[14]; + Kc = exp(g_RT[4] - g_RT[8] - g_RT[14] + g_RT[15]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[4] + h_RT[15]) + (h_RT[8] + h_RT[14])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[4] -= q; // H + wdot[8] += q; // OH + wdot[14] += q; // HNO + wdot[15] -= q; // HNO2 + // d()/d[H] + dqdci = +k_f * sc[15]; + J[132] -= dqdci; // dwdot[H]/d[H] + J[136] += dqdci; // dwdot[OH]/d[H] + J[142] += dqdci; // dwdot[HNO]/d[H] + J[143] -= dqdci; // dwdot[HNO2]/d[H] + // d()/d[OH] + dqdci = -k_r * sc[14]; + J[260] -= dqdci; // dwdot[H]/d[OH] + J[264] += dqdci; // dwdot[OH]/d[OH] + J[270] += dqdci; // dwdot[HNO]/d[OH] + J[271] -= dqdci; // dwdot[HNO2]/d[OH] + // d()/d[HNO] + dqdci = -k_r * sc[8]; + J[452] -= dqdci; // dwdot[H]/d[HNO] + J[456] += dqdci; // dwdot[OH]/d[HNO] + J[462] += dqdci; // dwdot[HNO]/d[HNO] + J[463] -= dqdci; // dwdot[HNO2]/d[HNO] + // d()/d[HNO2] + dqdci = +k_f * sc[4]; + J[484] -= dqdci; // dwdot[H]/d[HNO2] + J[488] += dqdci; // dwdot[OH]/d[HNO2] + J[494] += dqdci; // dwdot[HNO]/d[HNO2] + J[495] -= dqdci; // dwdot[HNO2]/d[HNO2] + // d()/dT + J[996] -= dqdT; // dwdot[H]/dT + J[1000] += dqdT; // dwdot[OH]/dT + J[1006] += dqdT; // dwdot[HNO]/dT + J[1007] -= dqdT; // dwdot[HNO2]/dT + + // reaction 200: NO + OH <=> HNO2 + // a non-third-body and non-pressure-fall-off reaction (PLOG) + // forward + phi_f = sc[8] * sc[11]; + k_f = + 1437278448551.32 * exp(-3.03239947553856 * logT - (1958.298666124) * invT); + dlnkfdT = -3.03239947553856 * invT + (1958.298666124) * invT2; + // reverse + phi_r = sc[15]; + Kc = refCinv * exp(g_RT[8] + g_RT[11] - g_RT[15]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[11]) + (h_RT[15]) + 1.000000); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[8] -= q; // OH + wdot[11] -= q; // NO + wdot[15] += q; // HNO2 + // d()/d[OH] + dqdci = +k_f * sc[11]; + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[267] -= dqdci; // dwdot[NO]/d[OH] + J[271] += dqdci; // dwdot[HNO2]/d[OH] + // d()/d[NO] + dqdci = +k_f * sc[8]; + J[360] -= dqdci; // dwdot[OH]/d[NO] + J[363] -= dqdci; // dwdot[NO]/d[NO] + J[367] += dqdci; // dwdot[HNO2]/d[NO] + // d()/d[HNO2] + dqdci = -k_r; + J[488] -= dqdci; // dwdot[OH]/d[HNO2] + J[491] -= dqdci; // dwdot[NO]/d[HNO2] + J[495] += dqdci; // dwdot[HNO2]/d[HNO2] + // d()/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1003] -= dqdT; // dwdot[NO]/dT + J[1007] += dqdT; // dwdot[HNO2]/dT + + // reaction 202: HONO2 + OH <=> H2O + NO3 + // a non-third-body and non-pressure-fall-off reaction + // forward + phi_f = sc[8] * sc[17]; + k_f = 9040 * exp(-(-623.988665597852) * invT); + dlnkfdT = (-623.988665597852) * invT2; + // reverse + phi_r = sc[7] * sc[25]; + Kc = exp(-g_RT[7] + g_RT[8] + g_RT[17] - g_RT[25]); + k_r = k_f / Kc; + dlnKcdT = invT * (-(h_RT[8] + h_RT[17]) + (h_RT[7] + h_RT[25])); + dkrdT = (dlnkfdT - dlnKcdT) * k_r; + // rate of progress + q = k_f * phi_f - k_r * phi_r; + dqdT = (dlnkfdT * k_f * phi_f - dkrdT * phi_r); + // update wdot + wdot[7] += q; // H2O + wdot[8] -= q; // OH + wdot[17] -= q; // HONO2 + wdot[25] += q; // NO3 + // d()/d[H2O] + dqdci = -k_r * sc[25]; + J[231] += dqdci; // dwdot[H2O]/d[H2O] + J[232] -= dqdci; // dwdot[OH]/d[H2O] + J[241] -= dqdci; // dwdot[HONO2]/d[H2O] + J[249] += dqdci; // dwdot[NO3]/d[H2O] + // d()/d[OH] + dqdci = +k_f * sc[17]; + J[263] += dqdci; // dwdot[H2O]/d[OH] + J[264] -= dqdci; // dwdot[OH]/d[OH] + J[273] -= dqdci; // dwdot[HONO2]/d[OH] + J[281] += dqdci; // dwdot[NO3]/d[OH] + // d()/d[HONO2] + dqdci = +k_f * sc[8]; + J[551] += dqdci; // dwdot[H2O]/d[HONO2] + J[552] -= dqdci; // dwdot[OH]/d[HONO2] + J[561] -= dqdci; // dwdot[HONO2]/d[HONO2] + J[569] += dqdci; // dwdot[NO3]/d[HONO2] + // d()/d[NO3] + dqdci = -k_r * sc[7]; + J[807] += dqdci; // dwdot[H2O]/d[NO3] + J[808] -= dqdci; // dwdot[OH]/d[NO3] + J[817] -= dqdci; // dwdot[HONO2]/d[NO3] + J[825] += dqdci; // dwdot[NO3]/d[NO3] + // d()/dT + J[999] += dqdT; // dwdot[H2O]/dT + J[1000] -= dqdT; // dwdot[OH]/dT + J[1009] -= dqdT; // dwdot[HONO2]/dT + J[1017] += dqdT; // dwdot[NO3]/dT + + amrex::Real c_R[31], dcRdT[31], e_RT[31]; + amrex::Real* eh_RT; + if (consP == 1) { + cp_R(c_R, T); + dcvpRdT(dcRdT, T); + eh_RT = &h_RT[0]; + } else { + cv_R(c_R, T); + dcvpRdT(dcRdT, T); + speciesInternalEnergy(e_RT, T); + eh_RT = &e_RT[0]; + } + + amrex::Real cmix = 0.0, ehmix = 0.0, dcmixdT = 0.0, dehmixdT = 0.0; + for (int k = 0; k < 31; ++k) { + cmix += c_R[k] * sc[k]; + dcmixdT += dcRdT[k] * sc[k]; + ehmix += eh_RT[k] * wdot[k]; + dehmixdT += invT * (c_R[k] - eh_RT[k]) * wdot[k] + eh_RT[k] * J[992 + k]; + } + + amrex::Real cmixinv = 1.0 / cmix; + amrex::Real tmp1 = ehmix * cmixinv; + amrex::Real tmp3 = cmixinv * T; + amrex::Real tmp2 = tmp1 * tmp3; + amrex::Real dehmixdc; + // dTdot/d[X] + for (int k = 0; k < 31; ++k) { + dehmixdc = 0.0; + for (int m = 0; m < 31; ++m) { + dehmixdc += eh_RT[m] * J[k * 32 + m]; + } + J[k * 32 + 31] = tmp2 * c_R[k] - tmp3 * dehmixdc; + } + // dTdot/dT + J[1023] = -tmp1 + tmp2 * dcmixdT - tmp3 * dehmixdT; +#else + amrex::Abort(); +#endif +} + +// compute the reaction Jacobian +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +DWDOT( + amrex::Real* J, + const amrex::Real* sc, + const amrex::Real* Tp, + const int* consP) +{ + amrex::Real c[31]; + + for (int k = 0; k < 31; k++) { + c[k] = 1.e6 * sc[k]; + } + + aJacobian(J, c, *Tp, *consP); + + // dwdot[k]/dT + // dTdot/d[X] + for (int k = 0; k < 31; k++) { + J[992 + k] *= 1.e-6; + J[k * 32 + 31] *= 1.e6; + } +} + +// Transport function declarations + +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +egtransetLENIMC(int* LENIMC) +{ + *LENIMC = 127; +} + +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +egtransetLENRMC(int* LENRMC) +{ + *LENRMC = 19468; +} + +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +egtransetNO(int* NO) +{ + *NO = 4; +} + +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +egtransetKK(int* KK) +{ + *KK = 31; +} + +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +egtransetNLITE(int* NLITE) +{ + *NLITE = 3; +} + +// Patm in ergs/cm3 +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +egtransetPATM(amrex::Real* PATM) +{ + *PATM = 0.1013250000000000E+07; +} + +// the molecular weights in g/mol +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +egtransetWT(amrex::Real* WT) +{ + WT[0] = 3.99500000E+01; + WT[1] = 2.80140000E+01; + WT[2] = 4.00260200E+00; + WT[3] = 2.01600000E+00; + WT[4] = 1.00800000E+00; + WT[5] = 3.19980000E+01; + WT[6] = 1.59990000E+01; + WT[7] = 1.80150000E+01; + WT[8] = 1.70070000E+01; + WT[9] = 3.40140000E+01; + WT[10] = 3.30060000E+01; + WT[11] = 3.00060000E+01; + WT[12] = 4.40130000E+01; + WT[13] = 4.60050000E+01; + WT[14] = 3.10140000E+01; + WT[15] = 4.70130000E+01; + WT[16] = 4.70130000E+01; + WT[17] = 6.30120000E+01; + WT[18] = 3.00300000E+01; + WT[19] = 3.00300000E+01; + WT[20] = 3.30300000E+01; + WT[21] = 3.20220000E+01; + WT[22] = 1.70310000E+01; + WT[23] = 3.20460000E+01; + WT[24] = 1.40070000E+01; + WT[25] = 6.20040000E+01; + WT[26] = 1.50150000E+01; + WT[27] = 2.90220000E+01; + WT[28] = 1.60230000E+01; + WT[29] = 3.20220000E+01; + WT[30] = 3.10380000E+01; +} + +// the lennard-jones potential well depth eps/kb in K +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +egtransetEPS(amrex::Real* EPS) +{ + EPS[0] = 1.36500000E+02; + EPS[1] = 9.75300000E+01; + EPS[2] = 1.02000000E+01; + EPS[3] = 3.80000000E+01; + EPS[4] = 1.45000000E+02; + EPS[5] = 1.07400000E+02; + EPS[6] = 8.00000000E+01; + EPS[7] = 5.72400000E+02; + EPS[8] = 8.00000000E+01; + EPS[9] = 1.07400000E+02; + EPS[10] = 1.07400000E+02; + EPS[11] = 9.75000000E+01; + EPS[12] = 2.32400000E+02; + EPS[13] = 2.00000000E+02; + EPS[14] = 1.16700000E+02; + EPS[15] = 2.00000000E+02; + EPS[16] = 2.00000000E+02; + EPS[17] = 3.00000000E+02; + EPS[18] = 7.14000000E+01; + EPS[19] = 7.14000000E+01; + EPS[20] = 1.16700000E+02; + EPS[21] = 1.16700000E+02; + EPS[22] = 4.81000000E+02; + EPS[23] = 2.05000000E+02; + EPS[24] = 7.14000000E+01; + EPS[25] = 3.00000000E+02; + EPS[26] = 8.00000000E+01; + EPS[27] = 7.14000000E+01; + EPS[28] = 8.00000000E+01; + EPS[29] = 1.16700000E+02; + EPS[30] = 2.00000000E+02; +} + +// the lennard-jones collision diameter in Angstroms +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +egtransetSIG(amrex::Real* SIG) +{ + SIG[0] = 3.33000000E+00; + SIG[1] = 3.62100000E+00; + SIG[2] = 2.57600000E+00; + SIG[3] = 2.92000000E+00; + SIG[4] = 2.05000000E+00; + SIG[5] = 3.45800000E+00; + SIG[6] = 2.75000000E+00; + SIG[7] = 2.60500000E+00; + SIG[8] = 2.75000000E+00; + SIG[9] = 3.45800000E+00; + SIG[10] = 3.45800000E+00; + SIG[11] = 3.62100000E+00; + SIG[12] = 3.82800000E+00; + SIG[13] = 3.50000000E+00; + SIG[14] = 3.49200000E+00; + SIG[15] = 3.50000000E+00; + SIG[16] = 3.50000000E+00; + SIG[17] = 3.50000000E+00; + SIG[18] = 3.79800000E+00; + SIG[19] = 3.79800000E+00; + SIG[20] = 3.49200000E+00; + SIG[21] = 3.49200000E+00; + SIG[22] = 2.92000000E+00; + SIG[23] = 4.23000000E+00; + SIG[24] = 3.29800000E+00; + SIG[25] = 3.50000000E+00; + SIG[26] = 2.65000000E+00; + SIG[27] = 3.79800000E+00; + SIG[28] = 2.65000000E+00; + SIG[29] = 3.49200000E+00; + SIG[30] = 3.90000000E+00; +} + +// the dipole moment in Debye +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +egtransetDIP(amrex::Real* DIP) +{ + DIP[0] = 0.00000000E+00; + DIP[1] = 0.00000000E+00; + DIP[2] = 0.00000000E+00; + DIP[3] = 0.00000000E+00; + DIP[4] = 0.00000000E+00; + DIP[5] = 0.00000000E+00; + DIP[6] = 0.00000000E+00; + DIP[7] = 1.84400000E+00; + DIP[8] = 0.00000000E+00; + DIP[9] = 0.00000000E+00; + DIP[10] = 0.00000000E+00; + DIP[11] = 0.00000000E+00; + DIP[12] = 0.00000000E+00; + DIP[13] = 0.00000000E+00; + DIP[14] = 0.00000000E+00; + DIP[15] = 0.00000000E+00; + DIP[16] = 0.00000000E+00; + DIP[17] = 0.00000000E+00; + DIP[18] = 0.00000000E+00; + DIP[19] = 0.00000000E+00; + DIP[20] = 0.00000000E+00; + DIP[21] = 0.00000000E+00; + DIP[22] = 1.47000000E+00; + DIP[23] = 0.00000000E+00; + DIP[24] = 0.00000000E+00; + DIP[25] = 0.00000000E+00; + DIP[26] = 0.00000000E+00; + DIP[27] = 0.00000000E+00; + DIP[28] = 0.00000000E+00; + DIP[29] = 0.00000000E+00; + DIP[30] = 0.00000000E+00; +} + +// the polarizability in cubic Angstroms +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +egtransetPOL(amrex::Real* POL) +{ + POL[0] = 0.00000000E+00; + POL[1] = 1.76000000E+00; + POL[2] = 0.00000000E+00; + POL[3] = 7.90000000E-01; + POL[4] = 0.00000000E+00; + POL[5] = 1.60000000E+00; + POL[6] = 0.00000000E+00; + POL[7] = 0.00000000E+00; + POL[8] = 0.00000000E+00; + POL[9] = 0.00000000E+00; + POL[10] = 0.00000000E+00; + POL[11] = 1.76000000E+00; + POL[12] = 0.00000000E+00; + POL[13] = 0.00000000E+00; + POL[14] = 0.00000000E+00; + POL[15] = 0.00000000E+00; + POL[16] = 0.00000000E+00; + POL[17] = 0.00000000E+00; + POL[18] = 0.00000000E+00; + POL[19] = 0.00000000E+00; + POL[20] = 0.00000000E+00; + POL[21] = 0.00000000E+00; + POL[22] = 0.00000000E+00; + POL[23] = 4.26000000E+00; + POL[24] = 0.00000000E+00; + POL[25] = 0.00000000E+00; + POL[26] = 0.00000000E+00; + POL[27] = 0.00000000E+00; + POL[28] = 2.26000000E+00; + POL[29] = 0.00000000E+00; + POL[30] = 0.00000000E+00; +} + +// the rotational relaxation collision number at 298 K +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +egtransetZROT(amrex::Real* ZROT) +{ + ZROT[0] = 0.00000000E+00; + ZROT[1] = 4.00000000E+00; + ZROT[2] = 0.00000000E+00; + ZROT[3] = 2.80000000E+02; + ZROT[4] = 0.00000000E+00; + ZROT[5] = 3.80000000E+00; + ZROT[6] = 0.00000000E+00; + ZROT[7] = 4.00000000E+00; + ZROT[8] = 0.00000000E+00; + ZROT[9] = 3.80000000E+00; + ZROT[10] = 1.00000000E+00; + ZROT[11] = 4.00000000E+00; + ZROT[12] = 1.00000000E+00; + ZROT[13] = 1.00000000E+00; + ZROT[14] = 1.00000000E+00; + ZROT[15] = 1.00000000E+00; + ZROT[16] = 1.00000000E+00; + ZROT[17] = 1.00000000E+00; + ZROT[18] = 1.00000000E+00; + ZROT[19] = 1.00000000E+00; + ZROT[20] = 1.00000000E+00; + ZROT[21] = 1.00000000E+00; + ZROT[22] = 1.00000000E+01; + ZROT[23] = 1.50000000E+00; + ZROT[24] = 0.00000000E+00; + ZROT[25] = 1.00000000E+00; + ZROT[26] = 4.00000000E+00; + ZROT[27] = 1.00000000E+00; + ZROT[28] = 4.00000000E+00; + ZROT[29] = 1.00000000E+00; + ZROT[30] = 1.00000000E+00; +} + +// 0: monoatomic, 1: linear, 2: nonlinear +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +egtransetNLIN(int* NLIN) +{ + NLIN[0] = 0; + NLIN[1] = 1; + NLIN[2] = 0; + NLIN[3] = 1; + NLIN[4] = 0; + NLIN[5] = 1; + NLIN[6] = 0; + NLIN[7] = 2; + NLIN[8] = 1; + NLIN[9] = 2; + NLIN[10] = 2; + NLIN[11] = 1; + NLIN[12] = 1; + NLIN[13] = 2; + NLIN[14] = 2; + NLIN[15] = 2; + NLIN[16] = 2; + NLIN[17] = 2; + NLIN[18] = 2; + NLIN[19] = 2; + NLIN[20] = 2; + NLIN[21] = 2; + NLIN[22] = 2; + NLIN[23] = 2; + NLIN[24] = 0; + NLIN[25] = 2; + NLIN[26] = 1; + NLIN[27] = 2; + NLIN[28] = 2; + NLIN[29] = 2; + NLIN[30] = 2; +} + +// Poly fits for the viscosities, dim NO*KK +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +egtransetCOFETA(amrex::Real* COFETA) +{ + COFETA[0] = -1.90422662E+01; + COFETA[1] = 3.47025711E+00; + COFETA[2] = -3.75102111E-01; + COFETA[3] = 1.66086076E-02; + COFETA[4] = -1.65695492E+01; + COFETA[5] = 2.39056562E+00; + COFETA[6] = -2.34558144E-01; + COFETA[7] = 1.05024037E-02; + COFETA[8] = -1.20210733E+01; + COFETA[9] = 6.05315215E-01; + COFETA[10] = -1.17148401E-03; + COFETA[11] = 4.44790834E-04; + COFETA[12] = -1.38347555E+01; + COFETA[13] = 1.00106621E+00; + COFETA[14] = -4.98105694E-02; + COFETA[15] = 2.31450475E-03; + COFETA[16] = -2.04078253E+01; + COFETA[17] = 3.65436395E+00; + COFETA[18] = -3.98339635E-01; + COFETA[19] = 1.75883009E-02; + COFETA[20] = -1.71618439E+01; + COFETA[21] = 2.68036374E+00; + COFETA[22] = -2.72570227E-01; + COFETA[23] = 1.21650964E-02; + COFETA[24] = -1.50926370E+01; + COFETA[25] = 1.92606504E+00; + COFETA[26] = -1.73487476E-01; + COFETA[27] = 7.82572931E-03; + COFETA[28] = -1.05420930E+01; + COFETA[29] = -1.37777266E+00; + COFETA[30] = 4.20502561E-01; + COFETA[31] = -2.40627344E-02; + COFETA[32] = -1.50620876E+01; + COFETA[33] = 1.92606504E+00; + COFETA[34] = -1.73487476E-01; + COFETA[35] = 7.82572931E-03; + COFETA[36] = -1.71312945E+01; + COFETA[37] = 2.68036374E+00; + COFETA[38] = -2.72570227E-01; + COFETA[39] = 1.21650964E-02; + COFETA[40] = -1.71463359E+01; + COFETA[41] = 2.68036374E+00; + COFETA[42] = -2.72570227E-01; + COFETA[43] = 1.21650964E-02; + COFETA[44] = -1.65334706E+01; + COFETA[45] = 2.38991566E+00; + COFETA[46] = -2.34474715E-01; + COFETA[47] = 1.04988351E-02; + COFETA[48] = -2.38016052E+01; + COFETA[49] = 5.08149651E+00; + COFETA[50] = -5.69446240E-01; + COFETA[51] = 2.44183705E-02; + COFETA[52] = -2.24069409E+01; + COFETA[53] = 4.68007883E+00; + COFETA[54] = -5.23982071E-01; + COFETA[55] = 2.27205629E-02; + COFETA[56] = -1.77852722E+01; + COFETA[57] = 2.90334768E+00; + COFETA[58] = -3.01373404E-01; + COFETA[59] = 1.34067714E-02; + COFETA[60] = -2.23961039E+01; + COFETA[61] = 4.68007883E+00; + COFETA[62] = -5.23982071E-01; + COFETA[63] = 2.27205629E-02; + COFETA[64] = -2.23961039E+01; + COFETA[65] = 4.68007883E+00; + COFETA[66] = -5.23982071E-01; + COFETA[67] = 2.27205629E-02; + COFETA[68] = -2.44040113E+01; + COFETA[69] = 5.28093720E+00; + COFETA[70] = -5.75790801E-01; + COFETA[71] = 2.38952487E-02; + COFETA[72] = -1.48309013E+01; + COFETA[73] = 1.69625877E+00; + COFETA[74] = -1.42936462E-01; + COFETA[75] = 6.47223426E-03; + COFETA[76] = -1.48309013E+01; + COFETA[77] = 1.69625877E+00; + COFETA[78] = -1.42936462E-01; + COFETA[79] = 6.47223426E-03; + COFETA[80] = -1.77537834E+01; + COFETA[81] = 2.90334768E+00; + COFETA[82] = -3.01373404E-01; + COFETA[83] = 1.34067714E-02; + COFETA[84] = -1.77692799E+01; + COFETA[85] = 2.90334768E+00; + COFETA[86] = -3.01373404E-01; + COFETA[87] = 1.34067714E-02; + COFETA[88] = -1.62012713E+01; + COFETA[89] = 1.18120432E+00; + COFETA[90] = 4.63884727E-02; + COFETA[91] = -6.59117057E-03; + COFETA[92] = -2.31744337E+01; + COFETA[93] = 4.75234877E+00; + COFETA[94] = -5.32490068E-01; + COFETA[95] = 2.30536067E-02; + COFETA[96] = -1.49299043E+01; + COFETA[97] = 1.69625877E+00; + COFETA[98] = -1.42936462E-01; + COFETA[99] = 6.47223426E-03; + COFETA[100] = -2.44120745E+01; + COFETA[101] = 5.28093720E+00; + COFETA[102] = -5.75790801E-01; + COFETA[103] = 2.38952487E-02; + COFETA[104] = -1.50502927E+01; + COFETA[105] = 1.92606504E+00; + COFETA[106] = -1.73487476E-01; + COFETA[107] = 7.82572931E-03; + COFETA[108] = -1.48479726E+01; + COFETA[109] = 1.69625877E+00; + COFETA[110] = -1.42936462E-01; + COFETA[111] = 6.47223426E-03; + COFETA[112] = -1.50178050E+01; + COFETA[113] = 1.92606504E+00; + COFETA[114] = -1.73487476E-01; + COFETA[115] = 7.82572931E-03; + COFETA[116] = -1.77692799E+01; + COFETA[117] = 2.90334768E+00; + COFETA[118] = -3.01373404E-01; + COFETA[119] = 1.34067714E-02; + COFETA[120] = -2.28201370E+01; + COFETA[121] = 4.68007883E+00; + COFETA[122] = -5.23982071E-01; + COFETA[123] = 2.27205629E-02; +} + +// Poly fits for the conductivities, dim NO*KK +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +egtransetCOFLAM(amrex::Real* COFLAM) +{ + COFLAM[0] = -3.17204599E+00; + COFLAM[1] = 3.47025711E+00; + COFLAM[2] = -3.75102111E-01; + COFLAM[3] = 1.66086076E-02; + COFLAM[4] = 1.27996988E+01; + COFLAM[5] = -3.45926529E+00; + COFLAM[6] = 6.33710388E-01; + COFLAM[7] = -3.12809061E-02; + COFLAM[8] = 6.14983094E+00; + COFLAM[9] = 6.05315215E-01; + COFLAM[10] = -1.17148401E-03; + COFLAM[11] = 4.44790834E-04; + COFLAM[12] = 9.51630908E+00; + COFLAM[13] = -6.03771939E-01; + COFLAM[14] = 1.37537725E-01; + COFLAM[15] = -3.75161487E-03; + COFLAM[16] = -8.57944636E-01; + COFLAM[17] = 3.65436395E+00; + COFLAM[18] = -3.98339635E-01; + COFLAM[19] = 1.75883009E-02; + COFLAM[20] = -2.01899203E+00; + COFLAM[21] = 2.93818425E+00; + COFLAM[22] = -2.79678467E-01; + COFLAM[23] = 1.20357577E-02; + COFLAM[24] = 1.69268564E+00; + COFLAM[25] = 1.92606504E+00; + COFLAM[26] = -1.73487476E-01; + COFLAM[27] = 7.82572931E-03; + COFLAM[28] = 2.18323725E+01; + COFLAM[29] = -8.29630162E+00; + COFLAM[30] = 1.43258541E+00; + COFLAM[31] = -7.13534239E-02; + COFLAM[32] = 1.41832140E+01; + COFLAM[33] = -3.26221304E+00; + COFLAM[34] = 5.37538471E-01; + COFLAM[35] = -2.35356088E-02; + COFLAM[36] = 6.00062971E-01; + COFLAM[37] = 1.46230098E+00; + COFLAM[38] = -6.57921848E-03; + COFLAM[39] = -2.88686014E-03; + COFLAM[40] = 1.56898747E-01; + COFLAM[41] = 1.77883683E+00; + COFLAM[42] = -8.34023843E-02; + COFLAM[43] = 2.14202414E-03; + COFLAM[44] = 9.56657683E+00; + COFLAM[45] = -2.13090502E+00; + COFLAM[46] = 4.54325615E-01; + COFLAM[47] = -2.33433088E-02; + COFLAM[48] = -1.14721181E+01; + COFLAM[49] = 6.04006028E+00; + COFLAM[50] = -6.06920535E-01; + COFLAM[51] = 2.28508389E-02; + COFLAM[52] = -1.39111544E+01; + COFLAM[53] = 7.26782966E+00; + COFLAM[54] = -7.97501827E-01; + COFLAM[55] = 3.25210825E-02; + COFLAM[56] = 1.51260344E+01; + COFLAM[57] = -4.80921681E+00; + COFLAM[58] = 8.65680045E-01; + COFLAM[59] = -4.26220168E-02; + COFLAM[60] = -1.00679154E+01; + COFLAM[61] = 5.09009309E+00; + COFLAM[62] = -4.12919929E-01; + COFLAM[63] = 1.14824184E-02; + COFLAM[64] = -1.16090428E+01; + COFLAM[65] = 6.23471739E+00; + COFLAM[66] = -6.31329916E-01; + COFLAM[67] = 2.39167545E-02; + COFLAM[68] = -2.55674356E+01; + COFLAM[69] = 1.16755666E+01; + COFLAM[70] = -1.33280930E+00; + COFLAM[71] = 5.39037188E-02; + COFLAM[72] = 7.19365077E+00; + COFLAM[73] = -1.87884592E+00; + COFLAM[74] = 5.29113251E-01; + COFLAM[75] = -3.07137707E-02; + COFLAM[76] = 1.27053567E+01; + COFLAM[77] = -4.35754018E+00; + COFLAM[78] = 8.93592539E-01; + COFLAM[79] = -4.83078609E-02; + COFLAM[80] = 3.32098796E+00; + COFLAM[81] = -1.58156469E-01; + COFLAM[82] = 2.89843141E-01; + COFLAM[83] = -1.94688276E-02; + COFLAM[84] = -5.24397904E-01; + COFLAM[85] = 1.56246743E+00; + COFLAM[86] = 2.61415637E-02; + COFLAM[87] = -6.41699034E-03; + COFLAM[88] = 1.34500750E+01; + COFLAM[89] = -5.09736999E+00; + COFLAM[90] = 1.05099265E+00; + COFLAM[91] = -5.68992692E-02; + COFLAM[92] = -1.17569797E+01; + COFLAM[93] = 5.72426822E+00; + COFLAM[94] = -4.92232539E-01; + COFLAM[95] = 1.52208788E-02; + COFLAM[96] = 1.98838734E+00; + COFLAM[97] = 1.69625877E+00; + COFLAM[98] = -1.42936462E-01; + COFLAM[99] = 6.47223426E-03; + COFLAM[100] = -3.15306382E+01; + COFLAM[101] = 1.43100051E+01; + COFLAM[102] = -1.72313244E+00; + COFLAM[103] = 7.27788644E-02; + COFLAM[104] = 1.17442085E+01; + COFLAM[105] = -2.21995141E+00; + COFLAM[106] = 4.01106433E-01; + COFLAM[107] = -1.75559433E-02; + COFLAM[108] = 1.33218040E+01; + COFLAM[109] = -4.11467577E+00; + COFLAM[110] = 7.89489085E-01; + COFLAM[111] = -4.09176984E-02; + COFLAM[112] = 2.20920140E+01; + COFLAM[113] = -7.12446533E+00; + COFLAM[114] = 1.16388109E+00; + COFLAM[115] = -5.58147613E-02; + COFLAM[116] = 5.96507198E+00; + COFLAM[117] = -1.18500596E+00; + COFLAM[118] = 4.11405716E-01; + COFLAM[119] = -2.43221538E-02; + COFLAM[120] = -5.95947479E+00; + COFLAM[121] = 3.35828150E+00; + COFLAM[122] = -1.71829315E-01; + COFLAM[123] = 8.19483015E-04; +} + +// Poly fits for the diffusion coefficients, dim NO*KK*KK +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +egtransetCOFD(amrex::Real* COFD) +{ + COFD[0] = -1.72274176E+01; + COFD[1] = 4.09361913E+00; + COFD[2] = -3.19258125E-01; + COFD[3] = 1.39526981E-02; + COFD[4] = -1.59877962E+01; + COFD[5] = 3.63340763E+00; + COFD[6] = -2.60307961E-01; + COFD[7] = 1.14256954E-02; + COFD[8] = -1.10629389E+01; + COFD[9] = 2.22799917E+00; + COFD[10] = -8.09060313E-02; + COFD[11] = 3.79314251E-03; + COFD[12] = -1.23130320E+01; + COFD[13] = 2.74418790E+00; + COFD[14] = -1.46230156E-01; + COFD[15] = 6.53948886E-03; + COFD[16] = -1.54738770E+01; + COFD[17] = 4.15765300E+00; + COFD[18] = -3.27126237E-01; + COFD[19] = 1.42762611E-02; + COFD[20] = -1.62380132E+01; + COFD[21] = 3.72612300E+00; + COFD[22] = -2.71663673E-01; + COFD[23] = 1.18889643E-02; + COFD[24] = -1.49610523E+01; + COFD[25] = 3.41988961E+00; + COFD[26] = -2.33128386E-01; + COFD[27] = 1.02689994E-02; + COFD[28] = -2.12755915E+01; + COFD[29] = 5.60381989E+00; + COFD[30] = -4.91225459E-01; + COFD[31] = 2.04487844E-02; + COFD[32] = -1.49826737E+01; + COFD[33] = 3.41988961E+00; + COFD[34] = -2.33128386E-01; + COFD[35] = 1.02689994E-02; + COFD[36] = -1.62547451E+01; + COFD[37] = 3.72612300E+00; + COFD[38] = -2.71663673E-01; + COFD[39] = 1.18889643E-02; + COFD[40] = -1.62465647E+01; + COFD[41] = 3.72612300E+00; + COFD[42] = -2.71663673E-01; + COFD[43] = 1.18889643E-02; + COFD[44] = -1.60070825E+01; + COFD[45] = 3.63319748E+00; + COFD[46] = -2.60283206E-01; + COFD[47] = 1.14247279E-02; + COFD[48] = -1.92029888E+01; + COFD[49] = 4.73837374E+00; + COFD[50] = -3.97916523E-01; + COFD[51] = 1.71599378E-02; + COFD[52] = -1.85744784E+01; + COFD[53] = 4.54507313E+00; + COFD[54] = -3.74508073E-01; + COFD[55] = 1.62126770E-02; + COFD[56] = -1.66272546E+01; + COFD[57] = 3.87567029E+00; + COFD[58] = -2.91269312E-01; + COFD[59] = 1.27483193E-02; + COFD[60] = -1.85794860E+01; + COFD[61] = 4.54507313E+00; + COFD[62] = -3.74508073E-01; + COFD[63] = 1.62126770E-02; + COFD[64] = -1.85794860E+01; + COFD[65] = 4.54507313E+00; + COFD[66] = -3.74508073E-01; + COFD[67] = 1.62126770E-02; + COFD[68] = -2.01100428E+01; + COFD[69] = 5.05954824E+00; + COFD[70] = -4.36030731E-01; + COFD[71] = 1.86698373E-02; + COFD[72] = -1.51009746E+01; + COFD[73] = 3.27505697E+00; + COFD[74] = -2.14306851E-01; + COFD[75] = 9.45219335E-03; + COFD[76] = -1.51009746E+01; + COFD[77] = 3.27505697E+00; + COFD[78] = -2.14306851E-01; + COFD[79] = 9.45219335E-03; + COFD[80] = -1.66447370E+01; + COFD[81] = 3.87567029E+00; + COFD[82] = -2.91269312E-01; + COFD[83] = 1.27483193E-02; + COFD[84] = -1.66361946E+01; + COFD[85] = 3.87567029E+00; + COFD[86] = -2.91269312E-01; + COFD[87] = 1.27483193E-02; + COFD[88] = -2.09309944E+01; + COFD[89] = 5.48417182E+00; + COFD[90] = -4.80595673E-01; + COFD[91] = 2.01807046E-02; + COFD[92] = -1.87817832E+01; + COFD[93] = 4.57962473E+00; + COFD[94] = -3.78727534E-01; + COFD[95] = 1.63846967E-02; + COFD[96] = -1.47042106E+01; + COFD[97] = 3.27505697E+00; + COFD[98] = -2.14306851E-01; + COFD[99] = 9.45219335E-03; + COFD[100] = -2.01068988E+01; + COFD[101] = 5.05954824E+00; + COFD[102] = -4.36030731E-01; + COFD[103] = 1.86698373E-02; + COFD[104] = -1.49050178E+01; + COFD[105] = 3.41988961E+00; + COFD[106] = -2.33128386E-01; + COFD[107] = 1.02689994E-02; + COFD[108] = -1.50911577E+01; + COFD[109] = 3.27505697E+00; + COFD[110] = -2.14306851E-01; + COFD[111] = 9.45219335E-03; + COFD[112] = -1.49284191E+01; + COFD[113] = 3.41988961E+00; + COFD[114] = -2.33128386E-01; + COFD[115] = 1.02689994E-02; + COFD[116] = -1.66361946E+01; + COFD[117] = 3.87567029E+00; + COFD[118] = -2.91269312E-01; + COFD[119] = 1.27483193E-02; + COFD[120] = -1.85871947E+01; + COFD[121] = 4.54507313E+00; + COFD[122] = -3.74508073E-01; + COFD[123] = 1.62126770E-02; + COFD[124] = -1.59877962E+01; + COFD[125] = 3.63340763E+00; + COFD[126] = -2.60307961E-01; + COFD[127] = 1.14256954E-02; + COFD[128] = -1.49828551E+01; + COFD[129] = 3.25781069E+00; + COFD[130] = -2.12199367E-01; + COFD[131] = 9.36657283E-03; + COFD[132] = -1.07351246E+01; + COFD[133] = 2.07158557E+00; + COFD[134] = -5.94829811E-02; + COFD[135] = 2.81962466E-03; + COFD[136] = -1.16906458E+01; + COFD[137] = 2.47469981E+00; + COFD[138] = -1.10436257E-01; + COFD[139] = 4.95273813E-03; + COFD[140] = -1.42894603E+01; + COFD[141] = 3.67490723E+00; + COFD[142] = -2.65114792E-01; + COFD[143] = 1.16092671E-02; + COFD[144] = -1.52414498E+01; + COFD[145] = 3.35922578E+00; + COFD[146] = -2.25181399E-01; + COFD[147] = 9.92132878E-03; + COFD[148] = -1.40756909E+01; + COFD[149] = 3.07549274E+00; + COFD[150] = -1.88889344E-01; + COFD[151] = 8.37152866E-03; + COFD[152] = -2.10643264E+01; + COFD[153] = 5.53614864E+00; + COFD[154] = -4.86046753E-01; + COFD[155] = 2.03659193E-02; + COFD[156] = -1.40949183E+01; + COFD[157] = 3.07549274E+00; + COFD[158] = -1.88889344E-01; + COFD[159] = 8.37152866E-03; + COFD[160] = -1.52554785E+01; + COFD[161] = 3.35922578E+00; + COFD[162] = -2.25181399E-01; + COFD[163] = 9.92132878E-03; + COFD[164] = -1.52486292E+01; + COFD[165] = 3.35922578E+00; + COFD[166] = -2.25181399E-01; + COFD[167] = 9.92132878E-03; + COFD[168] = -1.49991002E+01; + COFD[169] = 3.25758557E+00; + COFD[170] = -2.12171692E-01; + COFD[171] = 9.36544059E-03; + COFD[172] = -1.79765505E+01; + COFD[173] = 4.30841971E+00; + COFD[174] = -3.45524579E-01; + COFD[175] = 1.50265381E-02; + COFD[176] = -1.74272359E+01; + COFD[177] = 4.14166966E+00; + COFD[178] = -3.25149462E-01; + COFD[179] = 1.41943811E-02; + COFD[180] = -1.55297830E+01; + COFD[181] = 3.46766436E+00; + COFD[182] = -2.39228775E-01; + COFD[183] = 1.05291747E-02; + COFD[184] = -1.74313098E+01; + COFD[185] = 4.14166966E+00; + COFD[186] = -3.25149462E-01; + COFD[187] = 1.41943811E-02; + COFD[188] = -1.74313098E+01; + COFD[189] = 4.14166966E+00; + COFD[190] = -3.25149462E-01; + COFD[191] = 1.41943811E-02; + COFD[192] = -1.88950650E+01; + COFD[193] = 4.64901542E+00; + COFD[194] = -3.87392964E-01; + COFD[195] = 1.67470740E-02; + COFD[196] = -1.42780328E+01; + COFD[197] = 2.97137588E+00; + COFD[198] = -1.75491257E-01; + COFD[199] = 7.79646773E-03; + COFD[200] = -1.42780328E+01; + COFD[201] = 2.97137588E+00; + COFD[202] = -1.75491257E-01; + COFD[203] = 7.79646773E-03; + COFD[204] = -1.55444803E+01; + COFD[205] = 3.46766436E+00; + COFD[206] = -2.39228775E-01; + COFD[207] = 1.05291747E-02; + COFD[208] = -1.55373090E+01; + COFD[209] = 3.46766436E+00; + COFD[210] = -2.39228775E-01; + COFD[211] = 1.05291747E-02; + COFD[212] = -2.04317489E+01; + COFD[213] = 5.33236126E+00; + COFD[214] = -4.66969600E-01; + COFD[215] = 1.98332514E-02; + COFD[216] = -1.76215377E+01; + COFD[217] = 4.16885068E+00; + COFD[218] = -3.28516035E-01; + COFD[219] = 1.43340744E-02; + COFD[220] = -1.39186828E+01; + COFD[221] = 2.97137588E+00; + COFD[222] = -1.75491257E-01; + COFD[223] = 7.79646773E-03; + COFD[224] = -1.88925697E+01; + COFD[225] = 4.64901542E+00; + COFD[226] = -3.87392964E-01; + COFD[227] = 1.67470740E-02; + COFD[228] = -1.40236167E+01; + COFD[229] = 3.07549274E+00; + COFD[230] = -1.88889344E-01; + COFD[231] = 8.37152866E-03; + COFD[232] = -1.42697208E+01; + COFD[233] = 2.97137588E+00; + COFD[234] = -1.75491257E-01; + COFD[235] = 7.79646773E-03; + COFD[236] = -1.40445265E+01; + COFD[237] = 3.07549274E+00; + COFD[238] = -1.88889344E-01; + COFD[239] = 8.37152866E-03; + COFD[240] = -1.55373090E+01; + COFD[241] = 3.46766436E+00; + COFD[242] = -2.39228775E-01; + COFD[243] = 1.05291747E-02; + COFD[244] = -1.74527205E+01; + COFD[245] = 4.14166966E+00; + COFD[246] = -3.25149462E-01; + COFD[247] = 1.41943811E-02; + COFD[248] = -1.10629389E+01; + COFD[249] = 2.22799917E+00; + COFD[250] = -8.09060313E-02; + COFD[251] = 3.79314251E-03; + COFD[252] = -1.07351246E+01; + COFD[253] = 2.07158557E+00; + COFD[254] = -5.94829811E-02; + COFD[255] = 2.81962466E-03; + COFD[256] = -8.46504949E+00; + COFD[257] = 1.46673890E+00; + COFD[258] = 2.38020670E-02; + COFD[259] = -9.49174844E-04; + COFD[260] = -9.45284139E+00; + COFD[261] = 1.86940410E+00; + COFD[262] = -3.17430758E-02; + COFD[263] = 1.55586434E-03; + COFD[264] = -9.78444724E+00; + COFD[265] = 2.20705488E+00; + COFD[266] = -7.74326953E-02; + COFD[267] = 3.60636998E-03; + COFD[268] = -1.09106668E+01; + COFD[269] = 2.16424494E+00; + COFD[270] = -7.28379264E-02; + COFD[271] = 3.45896222E-03; + COFD[272] = -9.92721038E+00; + COFD[273] = 1.87770435E+00; + COFD[274] = -3.14096583E-02; + COFD[275] = 1.46939409E-03; + COFD[276] = -1.24355423E+01; + COFD[277] = 2.82962578E+00; + COFD[278] = -1.57228964E-01; + COFD[279] = 7.01161370E-03; + COFD[280] = -9.93317619E+00; + COFD[281] = 1.87770435E+00; + COFD[282] = -3.14096583E-02; + COFD[283] = 1.46939409E-03; + COFD[284] = -1.09139725E+01; + COFD[285] = 2.16424494E+00; + COFD[286] = -7.28379264E-02; + COFD[287] = 3.45896222E-03; + COFD[288] = -1.09123674E+01; + COFD[289] = 2.16424494E+00; + COFD[290] = -7.28379264E-02; + COFD[291] = 3.45896222E-03; + COFD[292] = -1.07387333E+01; + COFD[293] = 2.07135078E+00; + COFD[294] = -5.94486193E-02; + COFD[295] = 2.81794875E-03; + COFD[296] = -1.09465433E+01; + COFD[297] = 2.05814061E+00; + COFD[298] = -5.25652767E-02; + COFD[299] = 2.26864561E-03; + COFD[300] = -1.06322925E+01; + COFD[301] = 1.97633987E+00; + COFD[302] = -4.13330837E-02; + COFD[303] = 1.75258621E-03; + COFD[304] = -1.10848394E+01; + COFD[305] = 2.23154753E+00; + COFD[306] = -8.23424809E-02; + COFD[307] = 3.90469203E-03; + COFD[308] = -1.06331513E+01; + COFD[309] = 1.97633987E+00; + COFD[310] = -4.13330837E-02; + COFD[311] = 1.75258621E-03; + COFD[312] = -1.06331513E+01; + COFD[313] = 1.97633987E+00; + COFD[314] = -4.13330837E-02; + COFD[315] = 1.75258621E-03; + COFD[316] = -1.14857023E+01; + COFD[317] = 2.31500582E+00; + COFD[318] = -8.85636550E-02; + COFD[319] = 3.95221215E-03; + COFD[320] = -1.01486621E+01; + COFD[321] = 1.79974659E+00; + COFD[322] = -2.00722664E-02; + COFD[323] = 9.21608576E-04; + COFD[324] = -1.01486621E+01; + COFD[325] = 1.79974659E+00; + COFD[326] = -2.00722664E-02; + COFD[327] = 9.21608576E-04; + COFD[328] = -1.10883400E+01; + COFD[329] = 2.23154753E+00; + COFD[330] = -8.23424809E-02; + COFD[331] = 3.90469203E-03; + COFD[332] = -1.10866417E+01; + COFD[333] = 2.23154753E+00; + COFD[334] = -8.23424809E-02; + COFD[335] = 3.90469203E-03; + COFD[336] = -1.22210872E+01; + COFD[337] = 2.70853069E+00; + COFD[338] = -1.41645737E-01; + COFD[339] = 6.34289768E-03; + COFD[340] = -1.08707823E+01; + COFD[341] = 1.98709546E+00; + COFD[342] = -4.27771402E-02; + COFD[343] = 1.81749490E-03; + COFD[344] = -9.92216640E+00; + COFD[345] = 1.79974659E+00; + COFD[346] = -2.00722664E-02; + COFD[347] = 9.21608576E-04; + COFD[348] = -1.14852170E+01; + COFD[349] = 2.31500582E+00; + COFD[350] = -8.85636550E-02; + COFD[351] = 3.95221215E-03; + COFD[352] = -9.88278718E+00; + COFD[353] = 1.87770435E+00; + COFD[354] = -3.14096583E-02; + COFD[355] = 1.46939409E-03; + COFD[356] = -1.01466238E+01; + COFD[357] = 1.79974659E+00; + COFD[358] = -2.00722664E-02; + COFD[359] = 9.21608576E-04; + COFD[360] = -9.88945164E+00; + COFD[361] = 1.87770435E+00; + COFD[362] = -3.14096583E-02; + COFD[363] = 1.46939409E-03; + COFD[364] = -1.10866417E+01; + COFD[365] = 2.23154753E+00; + COFD[366] = -8.23424809E-02; + COFD[367] = 3.90469203E-03; + COFD[368] = -1.07408702E+01; + COFD[369] = 1.97633987E+00; + COFD[370] = -4.13330837E-02; + COFD[371] = 1.75258621E-03; + COFD[372] = -1.23130320E+01; + COFD[373] = 2.74418790E+00; + COFD[374] = -1.46230156E-01; + COFD[375] = 6.53948886E-03; + COFD[376] = -1.16906458E+01; + COFD[377] = 2.47469981E+00; + COFD[378] = -1.10436257E-01; + COFD[379] = 4.95273813E-03; + COFD[380] = -9.45284139E+00; + COFD[381] = 1.86940410E+00; + COFD[382] = -3.17430758E-02; + COFD[383] = 1.55586434E-03; + COFD[384] = -1.03270769E+01; + COFD[385] = 2.19285409E+00; + COFD[386] = -7.54492786E-02; + COFD[387] = 3.51398213E-03; + COFD[388] = -1.14366544E+01; + COFD[389] = 2.78323501E+00; + COFD[390] = -1.51214064E-01; + COFD[391] = 6.75150012E-03; + COFD[392] = -1.18989101E+01; + COFD[393] = 2.57507000E+00; + COFD[394] = -1.24033737E-01; + COFD[395] = 5.56694959E-03; + COFD[396] = -1.09595844E+01; + COFD[397] = 2.30836460E+00; + COFD[398] = -8.76339315E-02; + COFD[399] = 3.90878445E-03; + COFD[400] = -1.71983144E+01; + COFD[401] = 4.63881440E+00; + COFD[402] = -3.86139677E-01; + COFD[403] = 1.66955099E-02; + COFD[404] = -1.09629118E+01; + COFD[405] = 2.30836460E+00; + COFD[406] = -8.76339315E-02; + COFD[407] = 3.90878445E-03; + COFD[408] = -1.19006697E+01; + COFD[409] = 2.57507000E+00; + COFD[410] = -1.24033737E-01; + COFD[411] = 5.56694959E-03; + COFD[412] = -1.18998160E+01; + COFD[413] = 2.57507000E+00; + COFD[414] = -1.24033737E-01; + COFD[415] = 5.56694959E-03; + COFD[416] = -1.16920043E+01; + COFD[417] = 2.47435332E+00; + COFD[418] = -1.10389228E-01; + COFD[419] = 4.95061056E-03; + COFD[420] = -1.36894486E+01; + COFD[421] = 3.19999740E+00; + COFD[422] = -2.04999020E-01; + COFD[423] = 9.06766105E-03; + COFD[424] = -1.31911433E+01; + COFD[425] = 3.04970299E+00; + COFD[426] = -1.85555523E-01; + COFD[427] = 8.22773480E-03; + COFD[428] = -1.20867851E+01; + COFD[429] = 2.64389960E+00; + COFD[430] = -1.33241706E-01; + COFD[431] = 5.97810200E-03; + COFD[432] = -1.31915935E+01; + COFD[433] = 3.04970299E+00; + COFD[434] = -1.85555523E-01; + COFD[435] = 8.22773480E-03; + COFD[436] = -1.31915935E+01; + COFD[437] = 3.04970299E+00; + COFD[438] = -1.85555523E-01; + COFD[439] = 8.22773480E-03; + COFD[440] = -1.43194657E+01; + COFD[441] = 3.46929508E+00; + COFD[442] = -2.39434132E-01; + COFD[443] = 1.05378123E-02; + COFD[444] = -1.10367385E+01; + COFD[445] = 2.19094415E+00; + COFD[446] = -7.11992510E-02; + COFD[447] = 3.14105973E-03; + COFD[448] = -1.10367385E+01; + COFD[449] = 2.19094415E+00; + COFD[450] = -7.11992510E-02; + COFD[451] = 3.14105973E-03; + COFD[452] = -1.20886512E+01; + COFD[453] = 2.64389960E+00; + COFD[454] = -1.33241706E-01; + COFD[455] = 5.97810200E-03; + COFD[456] = -1.20877466E+01; + COFD[457] = 2.64389960E+00; + COFD[458] = -1.33241706E-01; + COFD[459] = 5.97810200E-03; + COFD[460] = -1.61691404E+01; + COFD[461] = 4.23579872E+00; + COFD[462] = -3.36814569E-01; + COFD[463] = 1.46782930E-02; + COFD[464] = -1.34619205E+01; + COFD[465] = 3.07392586E+00; + COFD[466] = -1.88686437E-01; + COFD[467] = 8.36275856E-03; + COFD[468] = -1.08473079E+01; + COFD[469] = 2.19094415E+00; + COFD[470] = -7.11992510E-02; + COFD[471] = 3.14105973E-03; + COFD[472] = -1.43192137E+01; + COFD[473] = 3.46929508E+00; + COFD[474] = -2.39434132E-01; + COFD[475] = 1.05378123E-02; + COFD[476] = -1.09203428E+01; + COFD[477] = 2.30836460E+00; + COFD[478] = -8.76339315E-02; + COFD[479] = 3.90878445E-03; + COFD[480] = -1.10356472E+01; + COFD[481] = 2.19094415E+00; + COFD[482] = -7.11992510E-02; + COFD[483] = 3.14105973E-03; + COFD[484] = -1.09240801E+01; + COFD[485] = 2.30836460E+00; + COFD[486] = -8.76339315E-02; + COFD[487] = 3.90878445E-03; + COFD[488] = -1.20877466E+01; + COFD[489] = 2.64389960E+00; + COFD[490] = -1.33241706E-01; + COFD[491] = 5.97810200E-03; + COFD[492] = -1.33020050E+01; + COFD[493] = 3.04970299E+00; + COFD[494] = -1.85555523E-01; + COFD[495] = 8.22773480E-03; + COFD[496] = -1.54738770E+01; + COFD[497] = 4.15765300E+00; + COFD[498] = -3.27126237E-01; + COFD[499] = 1.42762611E-02; + COFD[500] = -1.42894603E+01; + COFD[501] = 3.67490723E+00; + COFD[502] = -2.65114792E-01; + COFD[503] = 1.16092671E-02; + COFD[504] = -9.78444724E+00; + COFD[505] = 2.20705488E+00; + COFD[506] = -7.74326953E-02; + COFD[507] = 3.60636998E-03; + COFD[508] = -1.14366544E+01; + COFD[509] = 2.78323501E+00; + COFD[510] = -1.51214064E-01; + COFD[511] = 6.75150012E-03; + COFD[512] = -1.47968875E+01; + COFD[513] = 4.23027636E+00; + COFD[514] = -3.36139991E-01; + COFD[515] = 1.46507621E-02; + COFD[516] = -1.46550238E+01; + COFD[517] = 3.83606243E+00; + COFD[518] = -2.86076532E-01; + COFD[519] = 1.25205829E-02; + COFD[520] = -1.34230419E+01; + COFD[521] = 3.48624238E+00; + COFD[522] = -2.41554467E-01; + COFD[523] = 1.06263545E-02; + COFD[524] = -1.95739720E+01; + COFD[525] = 5.61113230E+00; + COFD[526] = -4.90190187E-01; + COFD[527] = 2.03260675E-02; + COFD[528] = -1.34248014E+01; + COFD[529] = 3.48624238E+00; + COFD[530] = -2.41554467E-01; + COFD[531] = 1.06263545E-02; + COFD[532] = -1.46559297E+01; + COFD[533] = 3.83606243E+00; + COFD[534] = -2.86076532E-01; + COFD[535] = 1.25205829E-02; + COFD[536] = -1.46554904E+01; + COFD[537] = 3.83606243E+00; + COFD[538] = -2.86076532E-01; + COFD[539] = 1.25205829E-02; + COFD[540] = -1.42897987E+01; + COFD[541] = 3.67461872E+00; + COFD[542] = -2.65079836E-01; + COFD[543] = 1.16078592E-02; + COFD[544] = -1.74819260E+01; + COFD[545] = 4.80792005E+00; + COFD[546] = -4.06126584E-01; + COFD[547] = 1.74831083E-02; + COFD[548] = -1.68734802E+01; + COFD[549] = 4.63687143E+00; + COFD[550] = -3.85900861E-01; + COFD[551] = 1.66856798E-02; + COFD[552] = -1.50140936E+01; + COFD[553] = 3.96853403E+00; + COFD[554] = -3.03320126E-01; + COFD[555] = 1.32719819E-02; + COFD[556] = -1.68737101E+01; + COFD[557] = 4.63687143E+00; + COFD[558] = -3.85900861E-01; + COFD[559] = 1.66856798E-02; + COFD[560] = -1.68737101E+01; + COFD[561] = 4.63687143E+00; + COFD[562] = -3.85900861E-01; + COFD[563] = 1.66856798E-02; + COFD[564] = -1.82977813E+01; + COFD[565] = 5.12919743E+00; + COFD[566] = -4.44101569E-01; + COFD[567] = 1.89814640E-02; + COFD[568] = -1.34492865E+01; + COFD[569] = 3.34156587E+00; + COFD[570] = -2.22853306E-01; + COFD[571] = 9.81883417E-03; + COFD[572] = -1.34492865E+01; + COFD[573] = 3.34156587E+00; + COFD[574] = -2.22853306E-01; + COFD[575] = 9.81883417E-03; + COFD[576] = -1.50150551E+01; + COFD[577] = 3.96853403E+00; + COFD[578] = -3.03320126E-01; + COFD[579] = 1.32719819E-02; + COFD[580] = -1.50145893E+01; + COFD[581] = 3.96853403E+00; + COFD[582] = -3.03320126E-01; + COFD[583] = 1.32719819E-02; + COFD[584] = -1.94027720E+01; + COFD[585] = 5.54487588E+00; + COFD[586] = -4.86919661E-01; + COFD[587] = 2.03935297E-02; + COFD[588] = -1.72055588E+01; + COFD[589] = 4.66875212E+00; + COFD[590] = -3.89780131E-01; + COFD[591] = 1.68436252E-02; + COFD[592] = -1.32522938E+01; + COFD[593] = 3.34156587E+00; + COFD[594] = -2.22853306E-01; + COFD[595] = 9.81883417E-03; + COFD[596] = -1.82976533E+01; + COFD[597] = 5.12919743E+00; + COFD[598] = -4.44101569E-01; + COFD[599] = 1.89814640E-02; + COFD[600] = -1.33789967E+01; + COFD[601] = 3.48624238E+00; + COFD[602] = -2.41554467E-01; + COFD[603] = 1.06263545E-02; + COFD[604] = -1.34487228E+01; + COFD[605] = 3.34156587E+00; + COFD[606] = -2.22853306E-01; + COFD[607] = 9.81883417E-03; + COFD[608] = -1.33809795E+01; + COFD[609] = 3.48624238E+00; + COFD[610] = -2.41554467E-01; + COFD[611] = 1.06263545E-02; + COFD[612] = -1.50145893E+01; + COFD[613] = 3.96853403E+00; + COFD[614] = -3.03320126E-01; + COFD[615] = 1.32719819E-02; + COFD[616] = -1.70075237E+01; + COFD[617] = 4.63687143E+00; + COFD[618] = -3.85900861E-01; + COFD[619] = 1.66856798E-02; + COFD[620] = -1.62380132E+01; + COFD[621] = 3.72612300E+00; + COFD[622] = -2.71663673E-01; + COFD[623] = 1.18889643E-02; + COFD[624] = -1.52414498E+01; + COFD[625] = 3.35922578E+00; + COFD[626] = -2.25181399E-01; + COFD[627] = 9.92132878E-03; + COFD[628] = -1.09106668E+01; + COFD[629] = 2.16424494E+00; + COFD[630] = -7.28379264E-02; + COFD[631] = 3.45896222E-03; + COFD[632] = -1.18989101E+01; + COFD[633] = 2.57507000E+00; + COFD[634] = -1.24033737E-01; + COFD[635] = 5.56694959E-03; + COFD[636] = -1.46550238E+01; + COFD[637] = 3.83606243E+00; + COFD[638] = -2.86076532E-01; + COFD[639] = 1.25205829E-02; + COFD[640] = -1.55511233E+01; + COFD[641] = 3.48070094E+00; + COFD[642] = -2.40859499E-01; + COFD[643] = 1.05972514E-02; + COFD[644] = -1.43139120E+01; + COFD[645] = 3.17651319E+00; + COFD[646] = -2.02028974E-01; + COFD[647] = 8.94232502E-03; + COFD[648] = -2.12652444E+01; + COFD[649] = 5.59961822E+00; + COFD[650] = -4.91624856E-01; + COFD[651] = 2.05035546E-02; + COFD[652] = -1.43340695E+01; + COFD[653] = 3.17651319E+00; + COFD[654] = -2.02028974E-01; + COFD[655] = 8.94232502E-03; + COFD[656] = -1.55661647E+01; + COFD[657] = 3.48070094E+00; + COFD[658] = -2.40859499E-01; + COFD[659] = 1.05972514E-02; + COFD[660] = -1.55588172E+01; + COFD[661] = 3.48070094E+00; + COFD[662] = -2.40859499E-01; + COFD[663] = 1.05972514E-02; + COFD[664] = -1.52582687E+01; + COFD[665] = 3.35876143E+00; + COFD[666] = -2.25120173E-01; + COFD[667] = 9.91863270E-03; + COFD[668] = -1.83308344E+01; + COFD[669] = 4.43878381E+00; + COFD[670] = -3.61697624E-01; + COFD[671] = 1.56975581E-02; + COFD[672] = -1.77337260E+01; + COFD[673] = 4.25438185E+00; + COFD[674] = -3.39084808E-01; + COFD[675] = 1.47709916E-02; + COFD[676] = -1.57967271E+01; + COFD[677] = 3.57122377E+00; + COFD[678] = -2.52409987E-01; + COFD[679] = 1.10900562E-02; + COFD[680] = -1.77381432E+01; + COFD[681] = 4.25438185E+00; + COFD[682] = -3.39084808E-01; + COFD[683] = 1.47709916E-02; + COFD[684] = -1.77381432E+01; + COFD[685] = 4.25438185E+00; + COFD[686] = -3.39084808E-01; + COFD[687] = 1.47709916E-02; + COFD[688] = -1.92082897E+01; + COFD[689] = 4.75780017E+00; + COFD[690] = -4.00245597E-01; + COFD[691] = 1.72532160E-02; + COFD[692] = -1.45001273E+01; + COFD[693] = 3.05837263E+00; + COFD[694] = -1.86672802E-01; + COFD[695] = 8.27575734E-03; + COFD[696] = -1.45001273E+01; + COFD[697] = 3.05837263E+00; + COFD[698] = -1.86672802E-01; + COFD[699] = 8.27575734E-03; + COFD[700] = -1.58124694E+01; + COFD[701] = 3.57122377E+00; + COFD[702] = -2.52409987E-01; + COFD[703] = 1.10900562E-02; + COFD[704] = -1.58047841E+01; + COFD[705] = 3.57122377E+00; + COFD[706] = -2.52409987E-01; + COFD[707] = 1.10900562E-02; + COFD[708] = -2.06107066E+01; + COFD[709] = 5.38762349E+00; + COFD[710] = -4.71526408E-01; + COFD[711] = 1.99251819E-02; + COFD[712] = -1.79257516E+01; + COFD[713] = 4.28074656E+00; + COFD[714] = -3.42272429E-01; + COFD[715] = 1.48995988E-02; + COFD[716] = -1.41254300E+01; + COFD[717] = 3.05837263E+00; + COFD[718] = -1.86672802E-01; + COFD[719] = 8.27575734E-03; + COFD[720] = -1.92055596E+01; + COFD[721] = 4.75780017E+00; + COFD[722] = -4.00245597E-01; + COFD[723] = 1.72532160E-02; + COFD[724] = -1.42600522E+01; + COFD[725] = 3.17651319E+00; + COFD[726] = -2.02028974E-01; + COFD[727] = 8.94232502E-03; + COFD[728] = -1.44912481E+01; + COFD[729] = 3.05837263E+00; + COFD[730] = -1.86672802E-01; + COFD[731] = 8.27575734E-03; + COFD[732] = -1.42819328E+01; + COFD[733] = 3.17651319E+00; + COFD[734] = -2.02028974E-01; + COFD[735] = 8.94232502E-03; + COFD[736] = -1.58047841E+01; + COFD[737] = 3.57122377E+00; + COFD[738] = -2.52409987E-01; + COFD[739] = 1.10900562E-02; + COFD[740] = -1.77552699E+01; + COFD[741] = 4.25438185E+00; + COFD[742] = -3.39084808E-01; + COFD[743] = 1.47709916E-02; + COFD[744] = -1.49610523E+01; + COFD[745] = 3.41988961E+00; + COFD[746] = -2.33128386E-01; + COFD[747] = 1.02689994E-02; + COFD[748] = -1.40756909E+01; + COFD[749] = 3.07549274E+00; + COFD[750] = -1.88889344E-01; + COFD[751] = 8.37152866E-03; + COFD[752] = -9.92721038E+00; + COFD[753] = 1.87770435E+00; + COFD[754] = -3.14096583E-02; + COFD[755] = 1.46939409E-03; + COFD[756] = -1.09595844E+01; + COFD[757] = 2.30836460E+00; + COFD[758] = -8.76339315E-02; + COFD[759] = 3.90878445E-03; + COFD[760] = -1.34230419E+01; + COFD[761] = 3.48624238E+00; + COFD[762] = -2.41554467E-01; + COFD[763] = 1.06263545E-02; + COFD[764] = -1.43139120E+01; + COFD[765] = 3.17651319E+00; + COFD[766] = -2.02028974E-01; + COFD[767] = 8.94232502E-03; + COFD[768] = -1.32093517E+01; + COFD[769] = 2.90778936E+00; + COFD[770] = -1.67388544E-01; + COFD[771] = 7.45220609E-03; + COFD[772] = -1.94093476E+01; + COFD[773] = 5.16013126E+00; + COFD[774] = -4.46824543E-01; + COFD[775] = 1.90464887E-02; + COFD[776] = -1.32243932E+01; + COFD[777] = 2.90778936E+00; + COFD[778] = -1.67388544E-01; + COFD[779] = 7.45220609E-03; + COFD[780] = -1.43238892E+01; + COFD[781] = 3.17651319E+00; + COFD[782] = -2.02028974E-01; + COFD[783] = 8.94232502E-03; + COFD[784] = -1.43190281E+01; + COFD[785] = 3.17651319E+00; + COFD[786] = -2.02028974E-01; + COFD[787] = 8.94232502E-03; + COFD[788] = -1.40871001E+01; + COFD[789] = 3.07518980E+00; + COFD[790] = -1.88850114E-01; + COFD[791] = 8.36983308E-03; + COFD[792] = -1.69290023E+01; + COFD[793] = 4.09077642E+00; + COFD[794] = -3.18894990E-01; + COFD[795] = 1.39371445E-02; + COFD[796] = -1.62772129E+01; + COFD[797] = 3.88250968E+00; + COFD[798] = -2.92155848E-01; + COFD[799] = 1.27867850E-02; + COFD[800] = -1.45065534E+01; + COFD[801] = 3.24450689E+00; + COFD[802] = -2.10570734E-01; + COFD[803] = 9.30026771E-03; + COFD[804] = -1.62799868E+01; + COFD[805] = 3.88250968E+00; + COFD[806] = -2.92155848E-01; + COFD[807] = 1.27867850E-02; + COFD[808] = -1.62799868E+01; + COFD[809] = 3.88250968E+00; + COFD[810] = -2.92155848E-01; + COFD[811] = 1.27867850E-02; + COFD[812] = -1.76956982E+01; + COFD[813] = 4.38770680E+00; + COFD[814] = -3.55417486E-01; + COFD[815] = 1.54395368E-02; + COFD[816] = -1.34296968E+01; + COFD[817] = 2.80913567E+00; + COFD[818] = -1.54536855E-01; + COFD[819] = 6.89359313E-03; + COFD[820] = -1.34296968E+01; + COFD[821] = 2.80913567E+00; + COFD[822] = -1.54536855E-01; + COFD[823] = 6.89359313E-03; + COFD[824] = -1.45170482E+01; + COFD[825] = 3.24450689E+00; + COFD[826] = -2.10570734E-01; + COFD[827] = 9.30026771E-03; + COFD[828] = -1.45119385E+01; + COFD[829] = 3.24450689E+00; + COFD[830] = -2.10570734E-01; + COFD[831] = 9.30026771E-03; + COFD[832] = -1.89669550E+01; + COFD[833] = 4.98075560E+00; + COFD[834] = -4.26721620E-01; + COFD[835] = 1.83024823E-02; + COFD[836] = -1.65447057E+01; + COFD[837] = 3.92040487E+00; + COFD[838] = -2.97068442E-01; + COFD[839] = 1.30000135E-02; + COFD[840] = -1.31034501E+01; + COFD[841] = 2.80913567E+00; + COFD[842] = -1.54536855E-01; + COFD[843] = 6.89359313E-03; + COFD[844] = -1.76940550E+01; + COFD[845] = 4.38770680E+00; + COFD[846] = -3.55417486E-01; + COFD[847] = 1.54395368E-02; + COFD[848] = -1.31565325E+01; + COFD[849] = 2.90778936E+00; + COFD[850] = -1.67388544E-01; + COFD[851] = 7.45220609E-03; + COFD[852] = -1.34236967E+01; + COFD[853] = 2.80913567E+00; + COFD[854] = -1.54536855E-01; + COFD[855] = 6.89359313E-03; + COFD[856] = -1.31730281E+01; + COFD[857] = 2.90778936E+00; + COFD[858] = -1.67388544E-01; + COFD[859] = 7.45220609E-03; + COFD[860] = -1.45119385E+01; + COFD[861] = 3.24450689E+00; + COFD[862] = -2.10570734E-01; + COFD[863] = 9.30026771E-03; + COFD[864] = -1.63426470E+01; + COFD[865] = 3.88250968E+00; + COFD[866] = -2.92155848E-01; + COFD[867] = 1.27867850E-02; + COFD[868] = -2.12755915E+01; + COFD[869] = 5.60381989E+00; + COFD[870] = -4.91225459E-01; + COFD[871] = 2.04487844E-02; + COFD[872] = -2.10643264E+01; + COFD[873] = 5.53614864E+00; + COFD[874] = -4.86046753E-01; + COFD[875] = 2.03659193E-02; + COFD[876] = -1.24355423E+01; + COFD[877] = 2.82962578E+00; + COFD[878] = -1.57228964E-01; + COFD[879] = 7.01161370E-03; + COFD[880] = -1.71983144E+01; + COFD[881] = 4.63881440E+00; + COFD[882] = -3.86139677E-01; + COFD[883] = 1.66955099E-02; + COFD[884] = -1.95739720E+01; + COFD[885] = 5.61113230E+00; + COFD[886] = -4.90190187E-01; + COFD[887] = 2.03260675E-02; + COFD[888] = -2.12652444E+01; + COFD[889] = 5.59961822E+00; + COFD[890] = -4.91624856E-01; + COFD[891] = 2.05035546E-02; + COFD[892] = -1.94093476E+01; + COFD[893] = 5.16013126E+00; + COFD[894] = -4.46824543E-01; + COFD[895] = 1.90464887E-02; + COFD[896] = -1.19157788E+01; + COFD[897] = 9.28952533E-01; + COFD[898] = 2.42107483E-01; + COFD[899] = -1.59824150E-02; + COFD[900] = -1.94252948E+01; + COFD[901] = 5.16013126E+00; + COFD[902] = -4.46824543E-01; + COFD[903] = 1.90464887E-02; + COFD[904] = -2.06516251E+01; + COFD[905] = 5.41688482E+00; + COFD[906] = -4.73387188E-01; + COFD[907] = 1.99280175E-02; + COFD[908] = -2.06463656E+01; + COFD[909] = 5.41688482E+00; + COFD[910] = -4.73387188E-01; + COFD[911] = 1.99280175E-02; + COFD[912] = -2.10766975E+01; + COFD[913] = 5.53591180E+00; + COFD[914] = -4.86023540E-01; + COFD[915] = 2.03652106E-02; + COFD[916] = -2.13655991E+01; + COFD[917] = 5.35901292E+00; + COFD[918] = -4.36172487E-01; + COFD[919] = 1.71345319E-02; + COFD[920] = -2.14542455E+01; + COFD[921] = 5.49993732E+00; + COFD[922] = -4.62042917E-01; + COFD[923] = 1.85577413E-02; + COFD[924] = -2.09198980E+01; + COFD[925] = 5.50410224E+00; + COFD[926] = -4.82760329E-01; + COFD[927] = 2.02578587E-02; + COFD[928] = -2.14572714E+01; + COFD[929] = 5.49993732E+00; + COFD[930] = -4.62042917E-01; + COFD[931] = 1.85577413E-02; + COFD[932] = -2.14572714E+01; + COFD[933] = 5.49993732E+00; + COFD[934] = -4.62042917E-01; + COFD[935] = 1.85577413E-02; + COFD[936] = -2.05997590E+01; + COFD[937] = 4.95270274E+00; + COFD[938] = -3.68776104E-01; + COFD[939] = 1.36319669E-02; + COFD[940] = -1.95861373E+01; + COFD[941] = 5.05708283E+00; + COFD[942] = -4.35739290E-01; + COFD[943] = 1.86583205E-02; + COFD[944] = -1.95861373E+01; + COFD[945] = 5.05708283E+00; + COFD[946] = -4.35739290E-01; + COFD[947] = 1.86583205E-02; + COFD[948] = -2.09312389E+01; + COFD[949] = 5.50410224E+00; + COFD[950] = -4.82760329E-01; + COFD[951] = 2.02578587E-02; + COFD[952] = -2.09257148E+01; + COFD[953] = 5.50410224E+00; + COFD[954] = -4.82760329E-01; + COFD[955] = 2.02578587E-02; + COFD[956] = -1.47127611E+01; + COFD[957] = 2.26103996E+00; + COFD[958] = 4.18078573E-02; + COFD[959] = -6.41615598E-03; + COFD[960] = -2.12506564E+01; + COFD[961] = 5.23263977E+00; + COFD[962] = -4.14499490E-01; + COFD[963] = 1.59858003E-02; + COFD[964] = -1.92450630E+01; + COFD[965] = 5.05708283E+00; + COFD[966] = -4.35739290E-01; + COFD[967] = 1.86583205E-02; + COFD[968] = -2.05979550E+01; + COFD[969] = 4.95270274E+00; + COFD[970] = -3.68776104E-01; + COFD[971] = 1.36319669E-02; + COFD[972] = -1.93545859E+01; + COFD[973] = 5.16013126E+00; + COFD[974] = -4.46824543E-01; + COFD[975] = 1.90464887E-02; + COFD[976] = -1.95796677E+01; + COFD[977] = 5.05708283E+00; + COFD[978] = -4.35739290E-01; + COFD[979] = 1.86583205E-02; + COFD[980] = -2.10227896E+01; + COFD[981] = 5.58489888E+00; + COFD[982] = -4.81572427E-01; + COFD[983] = 1.97432269E-02; + COFD[984] = -2.09257148E+01; + COFD[985] = 5.50410224E+00; + COFD[986] = -4.82760329E-01; + COFD[987] = 2.02578587E-02; + COFD[988] = -2.15175497E+01; + COFD[989] = 5.49993732E+00; + COFD[990] = -4.62042917E-01; + COFD[991] = 1.85577413E-02; + COFD[992] = -1.49826737E+01; + COFD[993] = 3.41988961E+00; + COFD[994] = -2.33128386E-01; + COFD[995] = 1.02689994E-02; + COFD[996] = -1.40949183E+01; + COFD[997] = 3.07549274E+00; + COFD[998] = -1.88889344E-01; + COFD[999] = 8.37152866E-03; + COFD[1000] = -9.93317619E+00; + COFD[1001] = 1.87770435E+00; + COFD[1002] = -3.14096583E-02; + COFD[1003] = 1.46939409E-03; + COFD[1004] = -1.09629118E+01; + COFD[1005] = 2.30836460E+00; + COFD[1006] = -8.76339315E-02; + COFD[1007] = 3.90878445E-03; + COFD[1008] = -1.34248014E+01; + COFD[1009] = 3.48624238E+00; + COFD[1010] = -2.41554467E-01; + COFD[1011] = 1.06263545E-02; + COFD[1012] = -1.43340695E+01; + COFD[1013] = 3.17651319E+00; + COFD[1014] = -2.02028974E-01; + COFD[1015] = 8.94232502E-03; + COFD[1016] = -1.32243932E+01; + COFD[1017] = 2.90778936E+00; + COFD[1018] = -1.67388544E-01; + COFD[1019] = 7.45220609E-03; + COFD[1020] = -1.94252948E+01; + COFD[1021] = 5.16013126E+00; + COFD[1022] = -4.46824543E-01; + COFD[1023] = 1.90464887E-02; + COFD[1024] = -1.32399011E+01; + COFD[1025] = 2.90778936E+00; + COFD[1026] = -1.67388544E-01; + COFD[1027] = 7.45220609E-03; + COFD[1028] = -1.43444614E+01; + COFD[1029] = 3.17651319E+00; + COFD[1030] = -2.02028974E-01; + COFD[1031] = 8.94232502E-03; + COFD[1032] = -1.43393972E+01; + COFD[1033] = 3.17651319E+00; + COFD[1034] = -2.02028974E-01; + COFD[1035] = 8.94232502E-03; + COFD[1036] = -1.41068125E+01; + COFD[1037] = 3.07518980E+00; + COFD[1038] = -1.88850114E-01; + COFD[1039] = 8.36983308E-03; + COFD[1040] = -1.69512232E+01; + COFD[1041] = 4.09077642E+00; + COFD[1042] = -3.18894990E-01; + COFD[1043] = 1.39371445E-02; + COFD[1044] = -1.62996992E+01; + COFD[1045] = 3.88250968E+00; + COFD[1046] = -2.92155848E-01; + COFD[1047] = 1.27867850E-02; + COFD[1048] = -1.45264956E+01; + COFD[1049] = 3.24450689E+00; + COFD[1050] = -2.10570734E-01; + COFD[1051] = 9.30026771E-03; + COFD[1052] = -1.63026010E+01; + COFD[1053] = 3.88250968E+00; + COFD[1054] = -2.92155848E-01; + COFD[1055] = 1.27867850E-02; + COFD[1056] = -1.63026010E+01; + COFD[1057] = 3.88250968E+00; + COFD[1058] = -2.92155848E-01; + COFD[1059] = 1.27867850E-02; + COFD[1060] = -1.77199091E+01; + COFD[1061] = 4.38770680E+00; + COFD[1062] = -3.55417486E-01; + COFD[1063] = 1.54395368E-02; + COFD[1064] = -1.34494148E+01; + COFD[1065] = 2.80913567E+00; + COFD[1066] = -1.54536855E-01; + COFD[1067] = 6.89359313E-03; + COFD[1068] = -1.34494148E+01; + COFD[1069] = 2.80913567E+00; + COFD[1070] = -1.54536855E-01; + COFD[1071] = 6.89359313E-03; + COFD[1072] = -1.45374222E+01; + COFD[1073] = 3.24450689E+00; + COFD[1074] = -2.10570734E-01; + COFD[1075] = 9.30026771E-03; + COFD[1076] = -1.45321011E+01; + COFD[1077] = 3.24450689E+00; + COFD[1078] = -2.10570734E-01; + COFD[1079] = 9.30026771E-03; + COFD[1080] = -1.89824738E+01; + COFD[1081] = 4.98075560E+00; + COFD[1082] = -4.26721620E-01; + COFD[1083] = 1.83024823E-02; + COFD[1084] = -1.65648734E+01; + COFD[1085] = 3.92040487E+00; + COFD[1086] = -2.97068442E-01; + COFD[1087] = 1.30000135E-02; + COFD[1088] = -1.31174788E+01; + COFD[1089] = 2.80913567E+00; + COFD[1090] = -1.54536855E-01; + COFD[1091] = 6.89359313E-03; + COFD[1092] = -1.77181845E+01; + COFD[1093] = 4.38770680E+00; + COFD[1094] = -3.55417486E-01; + COFD[1095] = 1.54395368E-02; + COFD[1096] = -1.31710897E+01; + COFD[1097] = 2.90778936E+00; + COFD[1098] = -1.67388544E-01; + COFD[1099] = 7.45220609E-03; + COFD[1100] = -1.34431749E+01; + COFD[1101] = 2.80913567E+00; + COFD[1102] = -1.54536855E-01; + COFD[1103] = 6.89359313E-03; + COFD[1104] = -1.31880809E+01; + COFD[1105] = 2.90778936E+00; + COFD[1106] = -1.67388544E-01; + COFD[1107] = 7.45220609E-03; + COFD[1108] = -1.45321011E+01; + COFD[1109] = 3.24450689E+00; + COFD[1110] = -2.10570734E-01; + COFD[1111] = 9.30026771E-03; + COFD[1112] = -1.63625946E+01; + COFD[1113] = 3.88250968E+00; + COFD[1114] = -2.92155848E-01; + COFD[1115] = 1.27867850E-02; + COFD[1116] = -1.62547451E+01; + COFD[1117] = 3.72612300E+00; + COFD[1118] = -2.71663673E-01; + COFD[1119] = 1.18889643E-02; + COFD[1120] = -1.52554785E+01; + COFD[1121] = 3.35922578E+00; + COFD[1122] = -2.25181399E-01; + COFD[1123] = 9.92132878E-03; + COFD[1124] = -1.09139725E+01; + COFD[1125] = 2.16424494E+00; + COFD[1126] = -7.28379264E-02; + COFD[1127] = 3.45896222E-03; + COFD[1128] = -1.19006697E+01; + COFD[1129] = 2.57507000E+00; + COFD[1130] = -1.24033737E-01; + COFD[1131] = 5.56694959E-03; + COFD[1132] = -1.46559297E+01; + COFD[1133] = 3.83606243E+00; + COFD[1134] = -2.86076532E-01; + COFD[1135] = 1.25205829E-02; + COFD[1136] = -1.55661647E+01; + COFD[1137] = 3.48070094E+00; + COFD[1138] = -2.40859499E-01; + COFD[1139] = 1.05972514E-02; + COFD[1140] = -1.43238892E+01; + COFD[1141] = 3.17651319E+00; + COFD[1142] = -2.02028974E-01; + COFD[1143] = 8.94232502E-03; + COFD[1144] = -2.06516251E+01; + COFD[1145] = 5.41688482E+00; + COFD[1146] = -4.73387188E-01; + COFD[1147] = 1.99280175E-02; + COFD[1148] = -1.43444614E+01; + COFD[1149] = 3.17651319E+00; + COFD[1150] = -2.02028974E-01; + COFD[1151] = 8.94232502E-03; + COFD[1152] = -1.55816727E+01; + COFD[1153] = 3.48070094E+00; + COFD[1154] = -2.40859499E-01; + COFD[1155] = 1.05972514E-02; + COFD[1156] = -1.55740954E+01; + COFD[1157] = 3.48070094E+00; + COFD[1158] = -2.40859499E-01; + COFD[1159] = 1.05972514E-02; + COFD[1160] = -1.52728198E+01; + COFD[1161] = 3.35876143E+00; + COFD[1162] = -2.25120173E-01; + COFD[1163] = 9.91863270E-03; + COFD[1164] = -1.83482954E+01; + COFD[1165] = 4.43878381E+00; + COFD[1166] = -3.61697624E-01; + COFD[1167] = 1.56975581E-02; + COFD[1168] = -1.77515170E+01; + COFD[1169] = 4.25438185E+00; + COFD[1170] = -3.39084808E-01; + COFD[1171] = 1.47709916E-02; + COFD[1172] = -1.58115301E+01; + COFD[1173] = 3.57122377E+00; + COFD[1174] = -2.52409987E-01; + COFD[1175] = 1.10900562E-02; + COFD[1176] = -1.77560949E+01; + COFD[1177] = 4.25438185E+00; + COFD[1178] = -3.39084808E-01; + COFD[1179] = 1.47709916E-02; + COFD[1180] = -1.77560949E+01; + COFD[1181] = 4.25438185E+00; + COFD[1182] = -3.39084808E-01; + COFD[1183] = 1.47709916E-02; + COFD[1184] = -1.92283407E+01; + COFD[1185] = 4.75780017E+00; + COFD[1186] = -4.00245597E-01; + COFD[1187] = 1.72532160E-02; + COFD[1188] = -1.45146845E+01; + COFD[1189] = 3.05837263E+00; + COFD[1190] = -1.86672802E-01; + COFD[1191] = 8.27575734E-03; + COFD[1192] = -1.45146845E+01; + COFD[1193] = 3.05837263E+00; + COFD[1194] = -1.86672802E-01; + COFD[1195] = 8.27575734E-03; + COFD[1196] = -1.58277533E+01; + COFD[1197] = 3.57122377E+00; + COFD[1198] = -2.52409987E-01; + COFD[1199] = 1.10900562E-02; + COFD[1200] = -1.58198313E+01; + COFD[1201] = 3.57122377E+00; + COFD[1202] = -2.52409987E-01; + COFD[1203] = 1.10900562E-02; + COFD[1204] = -2.03712500E+01; + COFD[1205] = 5.32029196E+00; + COFD[1206] = -4.65578114E-01; + COFD[1207] = 1.97797257E-02; + COFD[1208] = -1.79408045E+01; + COFD[1209] = 4.28074656E+00; + COFD[1210] = -3.42272429E-01; + COFD[1211] = 1.48995988E-02; + COFD[1212] = -1.41345352E+01; + COFD[1213] = 3.05837263E+00; + COFD[1214] = -1.86672802E-01; + COFD[1215] = 8.27575734E-03; + COFD[1216] = -1.92254992E+01; + COFD[1217] = 4.75780017E+00; + COFD[1218] = -4.00245597E-01; + COFD[1219] = 1.72532160E-02; + COFD[1220] = -1.42696077E+01; + COFD[1221] = 3.17651319E+00; + COFD[1222] = -2.02028974E-01; + COFD[1223] = 8.94232502E-03; + COFD[1224] = -1.45055453E+01; + COFD[1225] = 3.05837263E+00; + COFD[1226] = -1.86672802E-01; + COFD[1227] = 8.27575734E-03; + COFD[1228] = -1.42919200E+01; + COFD[1229] = 3.17651319E+00; + COFD[1230] = -2.02028974E-01; + COFD[1231] = 8.94232502E-03; + COFD[1232] = -1.58198313E+01; + COFD[1233] = 3.57122377E+00; + COFD[1234] = -2.52409987E-01; + COFD[1235] = 1.10900562E-02; + COFD[1236] = -1.77700789E+01; + COFD[1237] = 4.25438185E+00; + COFD[1238] = -3.39084808E-01; + COFD[1239] = 1.47709916E-02; + COFD[1240] = -1.62465647E+01; + COFD[1241] = 3.72612300E+00; + COFD[1242] = -2.71663673E-01; + COFD[1243] = 1.18889643E-02; + COFD[1244] = -1.52486292E+01; + COFD[1245] = 3.35922578E+00; + COFD[1246] = -2.25181399E-01; + COFD[1247] = 9.92132878E-03; + COFD[1248] = -1.09123674E+01; + COFD[1249] = 2.16424494E+00; + COFD[1250] = -7.28379264E-02; + COFD[1251] = 3.45896222E-03; + COFD[1252] = -1.18998160E+01; + COFD[1253] = 2.57507000E+00; + COFD[1254] = -1.24033737E-01; + COFD[1255] = 5.56694959E-03; + COFD[1256] = -1.46554904E+01; + COFD[1257] = 3.83606243E+00; + COFD[1258] = -2.86076532E-01; + COFD[1259] = 1.25205829E-02; + COFD[1260] = -1.55588172E+01; + COFD[1261] = 3.48070094E+00; + COFD[1262] = -2.40859499E-01; + COFD[1263] = 1.05972514E-02; + COFD[1264] = -1.43190281E+01; + COFD[1265] = 3.17651319E+00; + COFD[1266] = -2.02028974E-01; + COFD[1267] = 8.94232502E-03; + COFD[1268] = -2.06463656E+01; + COFD[1269] = 5.41688482E+00; + COFD[1270] = -4.73387188E-01; + COFD[1271] = 1.99280175E-02; + COFD[1272] = -1.43393972E+01; + COFD[1273] = 3.17651319E+00; + COFD[1274] = -2.02028974E-01; + COFD[1275] = 8.94232502E-03; + COFD[1276] = -1.55740954E+01; + COFD[1277] = 3.48070094E+00; + COFD[1278] = -2.40859499E-01; + COFD[1279] = 1.05972514E-02; + COFD[1280] = -1.55666313E+01; + COFD[1281] = 3.48070094E+00; + COFD[1282] = -2.40859499E-01; + COFD[1283] = 1.05972514E-02; + COFD[1284] = -1.52657135E+01; + COFD[1285] = 3.35876143E+00; + COFD[1286] = -2.25120173E-01; + COFD[1287] = 9.91863270E-03; + COFD[1288] = -1.83397553E+01; + COFD[1289] = 4.43878381E+00; + COFD[1290] = -3.61697624E-01; + COFD[1291] = 1.56975581E-02; + COFD[1292] = -1.77428141E+01; + COFD[1293] = 4.25438185E+00; + COFD[1294] = -3.39084808E-01; + COFD[1295] = 1.47709916E-02; + COFD[1296] = -1.58042999E+01; + COFD[1297] = 3.57122377E+00; + COFD[1298] = -2.52409987E-01; + COFD[1299] = 1.10900562E-02; + COFD[1300] = -1.77473126E+01; + COFD[1301] = 4.25438185E+00; + COFD[1302] = -3.39084808E-01; + COFD[1303] = 1.47709916E-02; + COFD[1304] = -1.77473126E+01; + COFD[1305] = 4.25438185E+00; + COFD[1306] = -3.39084808E-01; + COFD[1307] = 1.47709916E-02; + COFD[1308] = -1.92185209E+01; + COFD[1309] = 4.75780017E+00; + COFD[1310] = -4.00245597E-01; + COFD[1311] = 1.72532160E-02; + COFD[1312] = -1.45075753E+01; + COFD[1313] = 3.05837263E+00; + COFD[1314] = -1.86672802E-01; + COFD[1315] = 8.27575734E-03; + COFD[1316] = -1.45075753E+01; + COFD[1317] = 3.05837263E+00; + COFD[1318] = -1.86672802E-01; + COFD[1319] = 8.27575734E-03; + COFD[1320] = -1.58202864E+01; + COFD[1321] = 3.57122377E+00; + COFD[1322] = -2.52409987E-01; + COFD[1323] = 1.10900562E-02; + COFD[1324] = -1.58124809E+01; + COFD[1325] = 3.57122377E+00; + COFD[1326] = -2.52409987E-01; + COFD[1327] = 1.10900562E-02; + COFD[1328] = -2.03661810E+01; + COFD[1329] = 5.32029196E+00; + COFD[1330] = -4.65578114E-01; + COFD[1331] = 1.97797257E-02; + COFD[1332] = -1.79334513E+01; + COFD[1333] = 4.28074656E+00; + COFD[1334] = -3.42272429E-01; + COFD[1335] = 1.48995988E-02; + COFD[1336] = -1.41301009E+01; + COFD[1337] = 3.05837263E+00; + COFD[1338] = -1.86672802E-01; + COFD[1339] = 8.27575734E-03; + COFD[1340] = -1.92157346E+01; + COFD[1341] = 4.75780017E+00; + COFD[1342] = -4.00245597E-01; + COFD[1343] = 1.72532160E-02; + COFD[1344] = -1.42649530E+01; + COFD[1345] = 3.17651319E+00; + COFD[1346] = -2.02028974E-01; + COFD[1347] = 8.94232502E-03; + COFD[1348] = -1.44985640E+01; + COFD[1349] = 3.05837263E+00; + COFD[1350] = -1.86672802E-01; + COFD[1351] = 8.27575734E-03; + COFD[1352] = -1.42870540E+01; + COFD[1353] = 3.17651319E+00; + COFD[1354] = -2.02028974E-01; + COFD[1355] = 8.94232502E-03; + COFD[1356] = -1.58124809E+01; + COFD[1357] = 3.57122377E+00; + COFD[1358] = -2.52409987E-01; + COFD[1359] = 1.10900562E-02; + COFD[1360] = -1.77628457E+01; + COFD[1361] = 4.25438185E+00; + COFD[1362] = -3.39084808E-01; + COFD[1363] = 1.47709916E-02; + COFD[1364] = -1.60070825E+01; + COFD[1365] = 3.63319748E+00; + COFD[1366] = -2.60283206E-01; + COFD[1367] = 1.14247279E-02; + COFD[1368] = -1.49991002E+01; + COFD[1369] = 3.25758557E+00; + COFD[1370] = -2.12171692E-01; + COFD[1371] = 9.36544059E-03; + COFD[1372] = -1.07387333E+01; + COFD[1373] = 2.07135078E+00; + COFD[1374] = -5.94486193E-02; + COFD[1375] = 2.81794875E-03; + COFD[1376] = -1.16920043E+01; + COFD[1377] = 2.47435332E+00; + COFD[1378] = -1.10389228E-01; + COFD[1379] = 4.95061056E-03; + COFD[1380] = -1.42897987E+01; + COFD[1381] = 3.67461872E+00; + COFD[1382] = -2.65079836E-01; + COFD[1383] = 1.16078592E-02; + COFD[1384] = -1.52582687E+01; + COFD[1385] = 3.35876143E+00; + COFD[1386] = -2.25120173E-01; + COFD[1387] = 9.91863270E-03; + COFD[1388] = -1.40871001E+01; + COFD[1389] = 3.07518980E+00; + COFD[1390] = -1.88850114E-01; + COFD[1391] = 8.36983308E-03; + COFD[1392] = -2.10766975E+01; + COFD[1393] = 5.53591180E+00; + COFD[1394] = -4.86023540E-01; + COFD[1395] = 2.03652106E-02; + COFD[1396] = -1.41068125E+01; + COFD[1397] = 3.07518980E+00; + COFD[1398] = -1.88850114E-01; + COFD[1399] = 8.36983308E-03; + COFD[1400] = -1.52728198E+01; + COFD[1401] = 3.35876143E+00; + COFD[1402] = -2.25120173E-01; + COFD[1403] = 9.91863270E-03; + COFD[1404] = -1.52657135E+01; + COFD[1405] = 3.35876143E+00; + COFD[1406] = -2.25120173E-01; + COFD[1407] = 9.91863270E-03; + COFD[1408] = -1.50159354E+01; + COFD[1409] = 3.25736066E+00; + COFD[1410] = -2.12144046E-01; + COFD[1411] = 9.36430976E-03; + COFD[1412] = -1.79960759E+01; + COFD[1413] = 4.30798848E+00; + COFD[1414] = -3.45470822E-01; + COFD[1415] = 1.50242973E-02; + COFD[1416] = -1.74474122E+01; + COFD[1417] = 4.14135251E+00; + COFD[1418] = -3.25110732E-01; + COFD[1419] = 1.41927996E-02; + COFD[1420] = -1.55466807E+01; + COFD[1421] = 3.46735141E+00; + COFD[1422] = -2.39189370E-01; + COFD[1423] = 1.05275176E-02; + COFD[1424] = -1.74516622E+01; + COFD[1425] = 4.14135251E+00; + COFD[1426] = -3.25110732E-01; + COFD[1427] = 1.41927996E-02; + COFD[1428] = -1.74516622E+01; + COFD[1429] = 4.14135251E+00; + COFD[1430] = -3.25110732E-01; + COFD[1431] = 1.41927996E-02; + COFD[1432] = -1.89174139E+01; + COFD[1433] = 4.64859330E+00; + COFD[1434] = -3.87341074E-01; + COFD[1435] = 1.67449382E-02; + COFD[1436] = -1.42948900E+01; + COFD[1437] = 2.97115231E+00; + COFD[1438] = -1.75463252E-01; + COFD[1439] = 7.79530067E-03; + COFD[1440] = -1.42948900E+01; + COFD[1441] = 2.97115231E+00; + COFD[1442] = -1.75463252E-01; + COFD[1443] = 7.79530067E-03; + COFD[1444] = -1.55619173E+01; + COFD[1445] = 3.46735141E+00; + COFD[1446] = -2.39189370E-01; + COFD[1447] = 1.05275176E-02; + COFD[1448] = -1.55544808E+01; + COFD[1449] = 3.46735141E+00; + COFD[1450] = -2.39189370E-01; + COFD[1451] = 1.05275176E-02; + COFD[1452] = -2.04433995E+01; + COFD[1453] = 5.33200305E+00; + COFD[1454] = -4.66928380E-01; + COFD[1455] = 1.98316696E-02; + COFD[1456] = -1.76386291E+01; + COFD[1457] = 4.16851125E+00; + COFD[1458] = -3.28473932E-01; + COFD[1459] = 1.43323241E-02; + COFD[1460] = -1.39292538E+01; + COFD[1461] = 2.97115231E+00; + COFD[1462] = -1.75463252E-01; + COFD[1463] = 7.79530067E-03; + COFD[1464] = -1.89147986E+01; + COFD[1465] = 4.64859330E+00; + COFD[1466] = -3.87341074E-01; + COFD[1467] = 1.67449382E-02; + COFD[1468] = -1.40345311E+01; + COFD[1469] = 3.07518980E+00; + COFD[1470] = -1.88850114E-01; + COFD[1471] = 8.36983308E-03; + COFD[1472] = -1.42862849E+01; + COFD[1473] = 2.97115231E+00; + COFD[1474] = -1.75463252E-01; + COFD[1475] = 7.79530067E-03; + COFD[1476] = -1.40559476E+01; + COFD[1477] = 3.07518980E+00; + COFD[1478] = -1.88850114E-01; + COFD[1479] = 8.36983308E-03; + COFD[1480] = -1.55544808E+01; + COFD[1481] = 3.46735141E+00; + COFD[1482] = -2.39189370E-01; + COFD[1483] = 1.05275176E-02; + COFD[1484] = -1.74695868E+01; + COFD[1485] = 4.14135251E+00; + COFD[1486] = -3.25110732E-01; + COFD[1487] = 1.41927996E-02; + COFD[1488] = -1.92029888E+01; + COFD[1489] = 4.73837374E+00; + COFD[1490] = -3.97916523E-01; + COFD[1491] = 1.71599378E-02; + COFD[1492] = -1.79765505E+01; + COFD[1493] = 4.30841971E+00; + COFD[1494] = -3.45524579E-01; + COFD[1495] = 1.50265381E-02; + COFD[1496] = -1.09465433E+01; + COFD[1497] = 2.05814061E+00; + COFD[1498] = -5.25652767E-02; + COFD[1499] = 2.26864561E-03; + COFD[1500] = -1.36894486E+01; + COFD[1501] = 3.19999740E+00; + COFD[1502] = -2.04999020E-01; + COFD[1503] = 9.06766105E-03; + COFD[1504] = -1.74819260E+01; + COFD[1505] = 4.80792005E+00; + COFD[1506] = -4.06126584E-01; + COFD[1507] = 1.74831083E-02; + COFD[1508] = -1.83308344E+01; + COFD[1509] = 4.43878381E+00; + COFD[1510] = -3.61697624E-01; + COFD[1511] = 1.56975581E-02; + COFD[1512] = -1.69290023E+01; + COFD[1513] = 4.09077642E+00; + COFD[1514] = -3.18894990E-01; + COFD[1515] = 1.39371445E-02; + COFD[1516] = -2.13655991E+01; + COFD[1517] = 5.35901292E+00; + COFD[1518] = -4.36172487E-01; + COFD[1519] = 1.71345319E-02; + COFD[1520] = -1.69512232E+01; + COFD[1521] = 4.09077642E+00; + COFD[1522] = -3.18894990E-01; + COFD[1523] = 1.39371445E-02; + COFD[1524] = -1.83482954E+01; + COFD[1525] = 4.43878381E+00; + COFD[1526] = -3.61697624E-01; + COFD[1527] = 1.56975581E-02; + COFD[1528] = -1.83397553E+01; + COFD[1529] = 4.43878381E+00; + COFD[1530] = -3.61697624E-01; + COFD[1531] = 1.56975581E-02; + COFD[1532] = -1.79960759E+01; + COFD[1533] = 4.30798848E+00; + COFD[1534] = -3.45470822E-01; + COFD[1535] = 1.50242973E-02; + COFD[1536] = -2.11909780E+01; + COFD[1537] = 5.35817304E+00; + COFD[1538] = -4.69455306E-01; + COFD[1539] = 1.99063292E-02; + COFD[1540] = -2.05716764E+01; + COFD[1541] = 5.17526774E+00; + COFD[1542] = -4.48472252E-01; + COFD[1543] = 1.91050891E-02; + COFD[1544] = -1.86088645E+01; + COFD[1545] = 4.53681554E+00; + COFD[1546] = -3.73517224E-01; + COFD[1547] = 1.61730724E-02; + COFD[1548] = -2.05769457E+01; + COFD[1549] = 5.17526774E+00; + COFD[1550] = -4.48472252E-01; + COFD[1551] = 1.91050891E-02; + COFD[1552] = -2.05769457E+01; + COFD[1553] = 5.17526774E+00; + COFD[1554] = -4.48472252E-01; + COFD[1555] = 1.91050891E-02; + COFD[1556] = -2.18304099E+01; + COFD[1557] = 5.54455172E+00; + COFD[1558] = -4.86886991E-01; + COFD[1559] = 2.03924829E-02; + COFD[1560] = -1.70265556E+01; + COFD[1561] = 3.93849401E+00; + COFD[1562] = -2.99416642E-01; + COFD[1563] = 1.31020815E-02; + COFD[1564] = -1.70265556E+01; + COFD[1565] = 3.93849401E+00; + COFD[1566] = -2.99416642E-01; + COFD[1567] = 1.31020815E-02; + COFD[1568] = -1.86270955E+01; + COFD[1569] = 4.53681554E+00; + COFD[1570] = -3.73517224E-01; + COFD[1571] = 1.61730724E-02; + COFD[1572] = -1.86181839E+01; + COFD[1573] = 4.53681554E+00; + COFD[1574] = -3.73517224E-01; + COFD[1575] = 1.61730724E-02; + COFD[1576] = -2.16211139E+01; + COFD[1577] = 5.50657794E+00; + COFD[1578] = -4.63927523E-01; + COFD[1579] = 1.86800112E-02; + COFD[1580] = -2.07567853E+01; + COFD[1581] = 5.20655416E+00; + COFD[1582] = -4.52109025E-01; + COFD[1583] = 1.92460992E-02; + COFD[1584] = -1.66315381E+01; + COFD[1585] = 3.93849401E+00; + COFD[1586] = -2.99416642E-01; + COFD[1587] = 1.31020815E-02; + COFD[1588] = -2.18270783E+01; + COFD[1589] = 5.54455172E+00; + COFD[1590] = -4.86886991E-01; + COFD[1591] = 2.03924829E-02; + COFD[1592] = -1.68748925E+01; + COFD[1593] = 4.09077642E+00; + COFD[1594] = -3.18894990E-01; + COFD[1595] = 1.39371445E-02; + COFD[1596] = -1.70163379E+01; + COFD[1597] = 3.93849401E+00; + COFD[1598] = -2.99416642E-01; + COFD[1599] = 1.31020815E-02; + COFD[1600] = -1.68989140E+01; + COFD[1601] = 4.09077642E+00; + COFD[1602] = -3.18894990E-01; + COFD[1603] = 1.39371445E-02; + COFD[1604] = -1.86181839E+01; + COFD[1605] = 4.53681554E+00; + COFD[1606] = -3.73517224E-01; + COFD[1607] = 1.61730724E-02; + COFD[1608] = -2.05721233E+01; + COFD[1609] = 5.17526774E+00; + COFD[1610] = -4.48472252E-01; + COFD[1611] = 1.91050891E-02; + COFD[1612] = -1.85744784E+01; + COFD[1613] = 4.54507313E+00; + COFD[1614] = -3.74508073E-01; + COFD[1615] = 1.62126770E-02; + COFD[1616] = -1.74272359E+01; + COFD[1617] = 4.14166966E+00; + COFD[1618] = -3.25149462E-01; + COFD[1619] = 1.41943811E-02; + COFD[1620] = -1.06322925E+01; + COFD[1621] = 1.97633987E+00; + COFD[1622] = -4.13330837E-02; + COFD[1623] = 1.75258621E-03; + COFD[1624] = -1.31911433E+01; + COFD[1625] = 3.04970299E+00; + COFD[1626] = -1.85555523E-01; + COFD[1627] = 8.22773480E-03; + COFD[1628] = -1.68734802E+01; + COFD[1629] = 4.63687143E+00; + COFD[1630] = -3.85900861E-01; + COFD[1631] = 1.66856798E-02; + COFD[1632] = -1.77337260E+01; + COFD[1633] = 4.25438185E+00; + COFD[1634] = -3.39084808E-01; + COFD[1635] = 1.47709916E-02; + COFD[1636] = -1.62772129E+01; + COFD[1637] = 3.88250968E+00; + COFD[1638] = -2.92155848E-01; + COFD[1639] = 1.27867850E-02; + COFD[1640] = -2.14542455E+01; + COFD[1641] = 5.49993732E+00; + COFD[1642] = -4.62042917E-01; + COFD[1643] = 1.85577413E-02; + COFD[1644] = -1.62996992E+01; + COFD[1645] = 3.88250968E+00; + COFD[1646] = -2.92155848E-01; + COFD[1647] = 1.27867850E-02; + COFD[1648] = -1.77515170E+01; + COFD[1649] = 4.25438185E+00; + COFD[1650] = -3.39084808E-01; + COFD[1651] = 1.47709916E-02; + COFD[1652] = -1.77428141E+01; + COFD[1653] = 4.25438185E+00; + COFD[1654] = -3.39084808E-01; + COFD[1655] = 1.47709916E-02; + COFD[1656] = -1.74474122E+01; + COFD[1657] = 4.14135251E+00; + COFD[1658] = -3.25110732E-01; + COFD[1659] = 1.41927996E-02; + COFD[1660] = -2.05716764E+01; + COFD[1661] = 5.17526774E+00; + COFD[1662] = -4.48472252E-01; + COFD[1663] = 1.91050891E-02; + COFD[1664] = -2.00443658E+01; + COFD[1665] = 5.03042083E+00; + COFD[1666] = -4.32596342E-01; + COFD[1667] = 1.85345510E-02; + COFD[1668] = -1.79999625E+01; + COFD[1669] = 4.34871946E+00; + COFD[1670] = -3.50542624E-01; + COFD[1671] = 1.52355319E-02; + COFD[1672] = -2.00497549E+01; + COFD[1673] = 5.03042083E+00; + COFD[1674] = -4.32596342E-01; + COFD[1675] = 1.85345510E-02; + COFD[1676] = -2.00497549E+01; + COFD[1677] = 5.03042083E+00; + COFD[1678] = -4.32596342E-01; + COFD[1679] = 1.85345510E-02; + COFD[1680] = -2.13070212E+01; + COFD[1681] = 5.40830928E+00; + COFD[1682] = -4.72988519E-01; + COFD[1683] = 1.99395140E-02; + COFD[1684] = -1.62833796E+01; + COFD[1685] = 3.68407693E+00; + COFD[1686] = -2.66228170E-01; + COFD[1687] = 1.16542305E-02; + COFD[1688] = -1.62833796E+01; + COFD[1689] = 3.68407693E+00; + COFD[1690] = -2.66228170E-01; + COFD[1691] = 1.16542305E-02; + COFD[1692] = -1.80185320E+01; + COFD[1693] = 4.34871946E+00; + COFD[1694] = -3.50542624E-01; + COFD[1695] = 1.52355319E-02; + COFD[1696] = -1.80094534E+01; + COFD[1697] = 4.34871946E+00; + COFD[1698] = -3.50542624E-01; + COFD[1699] = 1.52355319E-02; + COFD[1700] = -2.15739396E+01; + COFD[1701] = 5.58518186E+00; + COFD[1702] = -4.80813479E-01; + COFD[1703] = 1.96787936E-02; + COFD[1704] = -2.02329931E+01; + COFD[1705] = 5.06106939E+00; + COFD[1706] = -4.36210404E-01; + COFD[1707] = 1.86769307E-02; + COFD[1708] = -1.58784406E+01; + COFD[1709] = 3.68407693E+00; + COFD[1710] = -2.66228170E-01; + COFD[1711] = 1.16542305E-02; + COFD[1712] = -2.13036027E+01; + COFD[1713] = 5.40830928E+00; + COFD[1714] = -4.72988519E-01; + COFD[1715] = 1.99395140E-02; + COFD[1716] = -1.62212145E+01; + COFD[1717] = 3.88250968E+00; + COFD[1718] = -2.92155848E-01; + COFD[1719] = 1.27867850E-02; + COFD[1720] = -1.62729811E+01; + COFD[1721] = 3.68407693E+00; + COFD[1722] = -2.66228170E-01; + COFD[1723] = 1.16542305E-02; + COFD[1724] = -1.62455101E+01; + COFD[1725] = 3.88250968E+00; + COFD[1726] = -2.92155848E-01; + COFD[1727] = 1.27867850E-02; + COFD[1728] = -1.80094534E+01; + COFD[1729] = 4.34871946E+00; + COFD[1730] = -3.50542624E-01; + COFD[1731] = 1.52355319E-02; + COFD[1732] = -2.00475034E+01; + COFD[1733] = 5.03042083E+00; + COFD[1734] = -4.32596342E-01; + COFD[1735] = 1.85345510E-02; + COFD[1736] = -1.66272546E+01; + COFD[1737] = 3.87567029E+00; + COFD[1738] = -2.91269312E-01; + COFD[1739] = 1.27483193E-02; + COFD[1740] = -1.55297830E+01; + COFD[1741] = 3.46766436E+00; + COFD[1742] = -2.39228775E-01; + COFD[1743] = 1.05291747E-02; + COFD[1744] = -1.10848394E+01; + COFD[1745] = 2.23154753E+00; + COFD[1746] = -8.23424809E-02; + COFD[1747] = 3.90469203E-03; + COFD[1748] = -1.20867851E+01; + COFD[1749] = 2.64389960E+00; + COFD[1750] = -1.33241706E-01; + COFD[1751] = 5.97810200E-03; + COFD[1752] = -1.50140936E+01; + COFD[1753] = 3.96853403E+00; + COFD[1754] = -3.03320126E-01; + COFD[1755] = 1.32719819E-02; + COFD[1756] = -1.57967271E+01; + COFD[1757] = 3.57122377E+00; + COFD[1758] = -2.52409987E-01; + COFD[1759] = 1.10900562E-02; + COFD[1760] = -1.45065534E+01; + COFD[1761] = 3.24450689E+00; + COFD[1762] = -2.10570734E-01; + COFD[1763] = 9.30026771E-03; + COFD[1764] = -2.09198980E+01; + COFD[1765] = 5.50410224E+00; + COFD[1766] = -4.82760329E-01; + COFD[1767] = 2.02578587E-02; + COFD[1768] = -1.45264956E+01; + COFD[1769] = 3.24450689E+00; + COFD[1770] = -2.10570734E-01; + COFD[1771] = 9.30026771E-03; + COFD[1772] = -1.58115301E+01; + COFD[1773] = 3.57122377E+00; + COFD[1774] = -2.52409987E-01; + COFD[1775] = 1.10900562E-02; + COFD[1776] = -1.58042999E+01; + COFD[1777] = 3.57122377E+00; + COFD[1778] = -2.52409987E-01; + COFD[1779] = 1.10900562E-02; + COFD[1780] = -1.55466807E+01; + COFD[1781] = 3.46735141E+00; + COFD[1782] = -2.39189370E-01; + COFD[1783] = 1.05275176E-02; + COFD[1784] = -1.86088645E+01; + COFD[1785] = 4.53681554E+00; + COFD[1786] = -3.73517224E-01; + COFD[1787] = 1.61730724E-02; + COFD[1788] = -1.79999625E+01; + COFD[1789] = 4.34871946E+00; + COFD[1790] = -3.50542624E-01; + COFD[1791] = 1.52355319E-02; + COFD[1792] = -1.60107195E+01; + COFD[1793] = 3.64795923E+00; + COFD[1794] = -2.61984156E-01; + COFD[1795] = 1.14893124E-02; + COFD[1796] = -1.80042982E+01; + COFD[1797] = 4.34871946E+00; + COFD[1798] = -3.50542624E-01; + COFD[1799] = 1.52355319E-02; + COFD[1800] = -1.80042982E+01; + COFD[1801] = 4.34871946E+00; + COFD[1802] = -3.50542624E-01; + COFD[1803] = 1.52355319E-02; + COFD[1804] = -1.94697310E+01; + COFD[1805] = 4.84702690E+00; + COFD[1806] = -4.10607260E-01; + COFD[1807] = 1.76533032E-02; + COFD[1808] = -1.47303677E+01; + COFD[1809] = 3.14480429E+00; + COFD[1810] = -1.97906290E-01; + COFD[1811] = 8.76325718E-03; + COFD[1812] = -1.47303677E+01; + COFD[1813] = 3.14480429E+00; + COFD[1814] = -1.97906290E-01; + COFD[1815] = 8.76325718E-03; + COFD[1816] = -1.60262160E+01; + COFD[1817] = 3.64795923E+00; + COFD[1818] = -2.61984156E-01; + COFD[1819] = 1.14893124E-02; + COFD[1820] = -1.60186516E+01; + COFD[1821] = 3.64795923E+00; + COFD[1822] = -2.61984156E-01; + COFD[1823] = 1.14893124E-02; + COFD[1824] = -2.05628479E+01; + COFD[1825] = 5.37634919E+00; + COFD[1826] = -4.70693222E-01; + COFD[1827] = 1.99144603E-02; + COFD[1828] = -1.82118969E+01; + COFD[1829] = 4.38314454E+00; + COFD[1830] = -3.54844523E-01; + COFD[1831] = 1.54154407E-02; + COFD[1832] = -1.43591756E+01; + COFD[1833] = 3.14480429E+00; + COFD[1834] = -1.97906290E-01; + COFD[1835] = 8.76325718E-03; + COFD[1836] = -1.94670570E+01; + COFD[1837] = 4.84702690E+00; + COFD[1838] = -4.10607260E-01; + COFD[1839] = 1.76533032E-02; + COFD[1840] = -1.44530909E+01; + COFD[1841] = 3.24450689E+00; + COFD[1842] = -2.10570734E-01; + COFD[1843] = 9.30026771E-03; + COFD[1844] = -1.47216216E+01; + COFD[1845] = 3.14480429E+00; + COFD[1846] = -1.97906290E-01; + COFD[1847] = 8.76325718E-03; + COFD[1848] = -1.44747472E+01; + COFD[1849] = 3.24450689E+00; + COFD[1850] = -2.10570734E-01; + COFD[1851] = 9.30026771E-03; + COFD[1852] = -1.60186516E+01; + COFD[1853] = 3.64795923E+00; + COFD[1854] = -2.61984156E-01; + COFD[1855] = 1.14893124E-02; + COFD[1856] = -1.80224967E+01; + COFD[1857] = 4.34871946E+00; + COFD[1858] = -3.50542624E-01; + COFD[1859] = 1.52355319E-02; + COFD[1860] = -1.85794860E+01; + COFD[1861] = 4.54507313E+00; + COFD[1862] = -3.74508073E-01; + COFD[1863] = 1.62126770E-02; + COFD[1864] = -1.74313098E+01; + COFD[1865] = 4.14166966E+00; + COFD[1866] = -3.25149462E-01; + COFD[1867] = 1.41943811E-02; + COFD[1868] = -1.06331513E+01; + COFD[1869] = 1.97633987E+00; + COFD[1870] = -4.13330837E-02; + COFD[1871] = 1.75258621E-03; + COFD[1872] = -1.31915935E+01; + COFD[1873] = 3.04970299E+00; + COFD[1874] = -1.85555523E-01; + COFD[1875] = 8.22773480E-03; + COFD[1876] = -1.68737101E+01; + COFD[1877] = 4.63687143E+00; + COFD[1878] = -3.85900861E-01; + COFD[1879] = 1.66856798E-02; + COFD[1880] = -1.77381432E+01; + COFD[1881] = 4.25438185E+00; + COFD[1882] = -3.39084808E-01; + COFD[1883] = 1.47709916E-02; + COFD[1884] = -1.62799868E+01; + COFD[1885] = 3.88250968E+00; + COFD[1886] = -2.92155848E-01; + COFD[1887] = 1.27867850E-02; + COFD[1888] = -2.14572714E+01; + COFD[1889] = 5.49993732E+00; + COFD[1890] = -4.62042917E-01; + COFD[1891] = 1.85577413E-02; + COFD[1892] = -1.63026010E+01; + COFD[1893] = 3.88250968E+00; + COFD[1894] = -2.92155848E-01; + COFD[1895] = 1.27867850E-02; + COFD[1896] = -1.77560949E+01; + COFD[1897] = 4.25438185E+00; + COFD[1898] = -3.39084808E-01; + COFD[1899] = 1.47709916E-02; + COFD[1900] = -1.77473126E+01; + COFD[1901] = 4.25438185E+00; + COFD[1902] = -3.39084808E-01; + COFD[1903] = 1.47709916E-02; + COFD[1904] = -1.74516622E+01; + COFD[1905] = 4.14135251E+00; + COFD[1906] = -3.25110732E-01; + COFD[1907] = 1.41927996E-02; + COFD[1908] = -2.05769457E+01; + COFD[1909] = 5.17526774E+00; + COFD[1910] = -4.48472252E-01; + COFD[1911] = 1.91050891E-02; + COFD[1912] = -2.00497549E+01; + COFD[1913] = 5.03042083E+00; + COFD[1914] = -4.32596342E-01; + COFD[1915] = 1.85345510E-02; + COFD[1916] = -1.80042982E+01; + COFD[1917] = 4.34871946E+00; + COFD[1918] = -3.50542624E-01; + COFD[1919] = 1.52355319E-02; + COFD[1920] = -2.00552028E+01; + COFD[1921] = 5.03042083E+00; + COFD[1922] = -4.32596342E-01; + COFD[1923] = 1.85345510E-02; + COFD[1924] = -2.00552028E+01; + COFD[1925] = 5.03042083E+00; + COFD[1926] = -4.32596342E-01; + COFD[1927] = 1.85345510E-02; + COFD[1928] = -2.13132564E+01; + COFD[1929] = 5.40830928E+00; + COFD[1930] = -4.72988519E-01; + COFD[1931] = 1.99395140E-02; + COFD[1932] = -1.62876317E+01; + COFD[1933] = 3.68407693E+00; + COFD[1934] = -2.66228170E-01; + COFD[1935] = 1.16542305E-02; + COFD[1936] = -1.62876317E+01; + COFD[1937] = 3.68407693E+00; + COFD[1938] = -2.66228170E-01; + COFD[1939] = 1.16542305E-02; + COFD[1940] = -1.80230324E+01; + COFD[1941] = 4.34871946E+00; + COFD[1942] = -3.50542624E-01; + COFD[1943] = 1.52355319E-02; + COFD[1944] = -1.80138725E+01; + COFD[1945] = 4.34871946E+00; + COFD[1946] = -3.50542624E-01; + COFD[1947] = 1.52355319E-02; + COFD[1948] = -2.15768444E+01; + COFD[1949] = 5.58518186E+00; + COFD[1950] = -4.80813479E-01; + COFD[1951] = 1.96787936E-02; + COFD[1952] = -2.02374142E+01; + COFD[1953] = 5.06106939E+00; + COFD[1954] = -4.36210404E-01; + COFD[1955] = 1.86769307E-02; + COFD[1956] = -1.58809491E+01; + COFD[1957] = 3.68407693E+00; + COFD[1958] = -2.66228170E-01; + COFD[1959] = 1.16542305E-02; + COFD[1960] = -2.13097951E+01; + COFD[1961] = 5.40830928E+00; + COFD[1962] = -4.72988519E-01; + COFD[1963] = 1.99395140E-02; + COFD[1964] = -1.62238594E+01; + COFD[1965] = 3.88250968E+00; + COFD[1966] = -2.92155848E-01; + COFD[1967] = 1.27867850E-02; + COFD[1968] = -1.62771453E+01; + COFD[1969] = 3.68407693E+00; + COFD[1970] = -2.66228170E-01; + COFD[1971] = 1.16542305E-02; + COFD[1972] = -1.62482871E+01; + COFD[1973] = 3.88250968E+00; + COFD[1974] = -2.92155848E-01; + COFD[1975] = 1.27867850E-02; + COFD[1976] = -1.80138725E+01; + COFD[1977] = 4.34871946E+00; + COFD[1978] = -3.50542624E-01; + COFD[1979] = 1.52355319E-02; + COFD[1980] = -2.00518410E+01; + COFD[1981] = 5.03042083E+00; + COFD[1982] = -4.32596342E-01; + COFD[1983] = 1.85345510E-02; + COFD[1984] = -1.85794860E+01; + COFD[1985] = 4.54507313E+00; + COFD[1986] = -3.74508073E-01; + COFD[1987] = 1.62126770E-02; + COFD[1988] = -1.74313098E+01; + COFD[1989] = 4.14166966E+00; + COFD[1990] = -3.25149462E-01; + COFD[1991] = 1.41943811E-02; + COFD[1992] = -1.06331513E+01; + COFD[1993] = 1.97633987E+00; + COFD[1994] = -4.13330837E-02; + COFD[1995] = 1.75258621E-03; + COFD[1996] = -1.31915935E+01; + COFD[1997] = 3.04970299E+00; + COFD[1998] = -1.85555523E-01; + COFD[1999] = 8.22773480E-03; + COFD[2000] = -1.68737101E+01; + COFD[2001] = 4.63687143E+00; + COFD[2002] = -3.85900861E-01; + COFD[2003] = 1.66856798E-02; + COFD[2004] = -1.77381432E+01; + COFD[2005] = 4.25438185E+00; + COFD[2006] = -3.39084808E-01; + COFD[2007] = 1.47709916E-02; + COFD[2008] = -1.62799868E+01; + COFD[2009] = 3.88250968E+00; + COFD[2010] = -2.92155848E-01; + COFD[2011] = 1.27867850E-02; + COFD[2012] = -2.14572714E+01; + COFD[2013] = 5.49993732E+00; + COFD[2014] = -4.62042917E-01; + COFD[2015] = 1.85577413E-02; + COFD[2016] = -1.63026010E+01; + COFD[2017] = 3.88250968E+00; + COFD[2018] = -2.92155848E-01; + COFD[2019] = 1.27867850E-02; + COFD[2020] = -1.77560949E+01; + COFD[2021] = 4.25438185E+00; + COFD[2022] = -3.39084808E-01; + COFD[2023] = 1.47709916E-02; + COFD[2024] = -1.77473126E+01; + COFD[2025] = 4.25438185E+00; + COFD[2026] = -3.39084808E-01; + COFD[2027] = 1.47709916E-02; + COFD[2028] = -1.74516622E+01; + COFD[2029] = 4.14135251E+00; + COFD[2030] = -3.25110732E-01; + COFD[2031] = 1.41927996E-02; + COFD[2032] = -2.05769457E+01; + COFD[2033] = 5.17526774E+00; + COFD[2034] = -4.48472252E-01; + COFD[2035] = 1.91050891E-02; + COFD[2036] = -2.00497549E+01; + COFD[2037] = 5.03042083E+00; + COFD[2038] = -4.32596342E-01; + COFD[2039] = 1.85345510E-02; + COFD[2040] = -1.80042982E+01; + COFD[2041] = 4.34871946E+00; + COFD[2042] = -3.50542624E-01; + COFD[2043] = 1.52355319E-02; + COFD[2044] = -2.00552028E+01; + COFD[2045] = 5.03042083E+00; + COFD[2046] = -4.32596342E-01; + COFD[2047] = 1.85345510E-02; + COFD[2048] = -2.00552028E+01; + COFD[2049] = 5.03042083E+00; + COFD[2050] = -4.32596342E-01; + COFD[2051] = 1.85345510E-02; + COFD[2052] = -2.13132564E+01; + COFD[2053] = 5.40830928E+00; + COFD[2054] = -4.72988519E-01; + COFD[2055] = 1.99395140E-02; + COFD[2056] = -1.62876317E+01; + COFD[2057] = 3.68407693E+00; + COFD[2058] = -2.66228170E-01; + COFD[2059] = 1.16542305E-02; + COFD[2060] = -1.62876317E+01; + COFD[2061] = 3.68407693E+00; + COFD[2062] = -2.66228170E-01; + COFD[2063] = 1.16542305E-02; + COFD[2064] = -1.80230324E+01; + COFD[2065] = 4.34871946E+00; + COFD[2066] = -3.50542624E-01; + COFD[2067] = 1.52355319E-02; + COFD[2068] = -1.80138725E+01; + COFD[2069] = 4.34871946E+00; + COFD[2070] = -3.50542624E-01; + COFD[2071] = 1.52355319E-02; + COFD[2072] = -2.15768444E+01; + COFD[2073] = 5.58518186E+00; + COFD[2074] = -4.80813479E-01; + COFD[2075] = 1.96787936E-02; + COFD[2076] = -2.02374142E+01; + COFD[2077] = 5.06106939E+00; + COFD[2078] = -4.36210404E-01; + COFD[2079] = 1.86769307E-02; + COFD[2080] = -1.58809491E+01; + COFD[2081] = 3.68407693E+00; + COFD[2082] = -2.66228170E-01; + COFD[2083] = 1.16542305E-02; + COFD[2084] = -2.13097951E+01; + COFD[2085] = 5.40830928E+00; + COFD[2086] = -4.72988519E-01; + COFD[2087] = 1.99395140E-02; + COFD[2088] = -1.62238594E+01; + COFD[2089] = 3.88250968E+00; + COFD[2090] = -2.92155848E-01; + COFD[2091] = 1.27867850E-02; + COFD[2092] = -1.62771453E+01; + COFD[2093] = 3.68407693E+00; + COFD[2094] = -2.66228170E-01; + COFD[2095] = 1.16542305E-02; + COFD[2096] = -1.62482871E+01; + COFD[2097] = 3.88250968E+00; + COFD[2098] = -2.92155848E-01; + COFD[2099] = 1.27867850E-02; + COFD[2100] = -1.80138725E+01; + COFD[2101] = 4.34871946E+00; + COFD[2102] = -3.50542624E-01; + COFD[2103] = 1.52355319E-02; + COFD[2104] = -2.00518410E+01; + COFD[2105] = 5.03042083E+00; + COFD[2106] = -4.32596342E-01; + COFD[2107] = 1.85345510E-02; + COFD[2108] = -2.01100428E+01; + COFD[2109] = 5.05954824E+00; + COFD[2110] = -4.36030731E-01; + COFD[2111] = 1.86698373E-02; + COFD[2112] = -1.88950650E+01; + COFD[2113] = 4.64901542E+00; + COFD[2114] = -3.87392964E-01; + COFD[2115] = 1.67470740E-02; + COFD[2116] = -1.14857023E+01; + COFD[2117] = 2.31500582E+00; + COFD[2118] = -8.85636550E-02; + COFD[2119] = 3.95221215E-03; + COFD[2120] = -1.43194657E+01; + COFD[2121] = 3.46929508E+00; + COFD[2122] = -2.39434132E-01; + COFD[2123] = 1.05378123E-02; + COFD[2124] = -1.82977813E+01; + COFD[2125] = 5.12919743E+00; + COFD[2126] = -4.44101569E-01; + COFD[2127] = 1.89814640E-02; + COFD[2128] = -1.92082897E+01; + COFD[2129] = 4.75780017E+00; + COFD[2130] = -4.00245597E-01; + COFD[2131] = 1.72532160E-02; + COFD[2132] = -1.76956982E+01; + COFD[2133] = 4.38770680E+00; + COFD[2134] = -3.55417486E-01; + COFD[2135] = 1.54395368E-02; + COFD[2136] = -2.05997590E+01; + COFD[2137] = 4.95270274E+00; + COFD[2138] = -3.68776104E-01; + COFD[2139] = 1.36319669E-02; + COFD[2140] = -1.77199091E+01; + COFD[2141] = 4.38770680E+00; + COFD[2142] = -3.55417486E-01; + COFD[2143] = 1.54395368E-02; + COFD[2144] = -1.92283407E+01; + COFD[2145] = 4.75780017E+00; + COFD[2146] = -4.00245597E-01; + COFD[2147] = 1.72532160E-02; + COFD[2148] = -1.92185209E+01; + COFD[2149] = 4.75780017E+00; + COFD[2150] = -4.00245597E-01; + COFD[2151] = 1.72532160E-02; + COFD[2152] = -1.89174139E+01; + COFD[2153] = 4.64859330E+00; + COFD[2154] = -3.87341074E-01; + COFD[2155] = 1.67449382E-02; + COFD[2156] = -2.18304099E+01; + COFD[2157] = 5.54455172E+00; + COFD[2158] = -4.86886991E-01; + COFD[2159] = 2.03924829E-02; + COFD[2160] = -2.13070212E+01; + COFD[2161] = 5.40830928E+00; + COFD[2162] = -4.72988519E-01; + COFD[2163] = 1.99395140E-02; + COFD[2164] = -1.94697310E+01; + COFD[2165] = 4.84702690E+00; + COFD[2166] = -4.10607260E-01; + COFD[2167] = 1.76533032E-02; + COFD[2168] = -2.13132564E+01; + COFD[2169] = 5.40830928E+00; + COFD[2170] = -4.72988519E-01; + COFD[2171] = 1.99395140E-02; + COFD[2172] = -2.13132564E+01; + COFD[2173] = 5.40830928E+00; + COFD[2174] = -4.72988519E-01; + COFD[2175] = 1.99395140E-02; + COFD[2176] = -2.21426702E+01; + COFD[2177] = 5.58193688E+00; + COFD[2178] = -4.82971193E-01; + COFD[2179] = 1.98750221E-02; + COFD[2180] = -1.78576817E+01; + COFD[2181] = 4.25122035E+00; + COFD[2182] = -3.38698235E-01; + COFD[2183] = 1.47551928E-02; + COFD[2184] = -1.78576817E+01; + COFD[2185] = 4.25122035E+00; + COFD[2186] = -3.38698235E-01; + COFD[2187] = 1.47551928E-02; + COFD[2188] = -1.94906126E+01; + COFD[2189] = 4.84702690E+00; + COFD[2190] = -4.10607260E-01; + COFD[2191] = 1.76533032E-02; + COFD[2192] = -1.94803915E+01; + COFD[2193] = 4.84702690E+00; + COFD[2194] = -4.10607260E-01; + COFD[2195] = 1.76533032E-02; + COFD[2196] = -2.12081959E+01; + COFD[2197] = 5.25015888E+00; + COFD[2198] = -4.17586588E-01; + COFD[2199] = 1.61516138E-02; + COFD[2200] = -2.14329323E+01; + COFD[2201] = 5.41700226E+00; + COFD[2202] = -4.73390866E-01; + COFD[2203] = 1.99277147E-02; + COFD[2204] = -1.74289175E+01; + COFD[2205] = 4.25122035E+00; + COFD[2206] = -3.38698235E-01; + COFD[2207] = 1.47551928E-02; + COFD[2208] = -2.21386224E+01; + COFD[2209] = 5.58193688E+00; + COFD[2210] = -4.82971193E-01; + COFD[2211] = 1.98750221E-02; + COFD[2212] = -1.76379673E+01; + COFD[2213] = 4.38770680E+00; + COFD[2214] = -3.55417486E-01; + COFD[2215] = 1.54395368E-02; + COFD[2216] = -1.78460568E+01; + COFD[2217] = 4.25122035E+00; + COFD[2218] = -3.38698235E-01; + COFD[2219] = 1.47551928E-02; + COFD[2220] = -1.76640371E+01; + COFD[2221] = 4.38770680E+00; + COFD[2222] = -3.55417486E-01; + COFD[2223] = 1.54395368E-02; + COFD[2224] = -1.94803915E+01; + COFD[2225] = 4.84702690E+00; + COFD[2226] = -4.10607260E-01; + COFD[2227] = 1.76533032E-02; + COFD[2228] = -2.12952306E+01; + COFD[2229] = 5.40830928E+00; + COFD[2230] = -4.72988519E-01; + COFD[2231] = 1.99395140E-02; + COFD[2232] = -1.51009746E+01; + COFD[2233] = 3.27505697E+00; + COFD[2234] = -2.14306851E-01; + COFD[2235] = 9.45219335E-03; + COFD[2236] = -1.42780328E+01; + COFD[2237] = 2.97137588E+00; + COFD[2238] = -1.75491257E-01; + COFD[2239] = 7.79646773E-03; + COFD[2240] = -1.01486621E+01; + COFD[2241] = 1.79974659E+00; + COFD[2242] = -2.00722664E-02; + COFD[2243] = 9.21608576E-04; + COFD[2244] = -1.10367385E+01; + COFD[2245] = 2.19094415E+00; + COFD[2246] = -7.11992510E-02; + COFD[2247] = 3.14105973E-03; + COFD[2248] = -1.34492865E+01; + COFD[2249] = 3.34156587E+00; + COFD[2250] = -2.22853306E-01; + COFD[2251] = 9.81883417E-03; + COFD[2252] = -1.45001273E+01; + COFD[2253] = 3.05837263E+00; + COFD[2254] = -1.86672802E-01; + COFD[2255] = 8.27575734E-03; + COFD[2256] = -1.34296968E+01; + COFD[2257] = 2.80913567E+00; + COFD[2258] = -1.54536855E-01; + COFD[2259] = 6.89359313E-03; + COFD[2260] = -1.95861373E+01; + COFD[2261] = 5.05708283E+00; + COFD[2262] = -4.35739290E-01; + COFD[2263] = 1.86583205E-02; + COFD[2264] = -1.34494148E+01; + COFD[2265] = 2.80913567E+00; + COFD[2266] = -1.54536855E-01; + COFD[2267] = 6.89359313E-03; + COFD[2268] = -1.45146845E+01; + COFD[2269] = 3.05837263E+00; + COFD[2270] = -1.86672802E-01; + COFD[2271] = 8.27575734E-03; + COFD[2272] = -1.45075753E+01; + COFD[2273] = 3.05837263E+00; + COFD[2274] = -1.86672802E-01; + COFD[2275] = 8.27575734E-03; + COFD[2276] = -1.42948900E+01; + COFD[2277] = 2.97115231E+00; + COFD[2278] = -1.75463252E-01; + COFD[2279] = 7.79530067E-03; + COFD[2280] = -1.70265556E+01; + COFD[2281] = 3.93849401E+00; + COFD[2282] = -2.99416642E-01; + COFD[2283] = 1.31020815E-02; + COFD[2284] = -1.62833796E+01; + COFD[2285] = 3.68407693E+00; + COFD[2286] = -2.66228170E-01; + COFD[2287] = 1.16542305E-02; + COFD[2288] = -1.47303677E+01; + COFD[2289] = 3.14480429E+00; + COFD[2290] = -1.97906290E-01; + COFD[2291] = 8.76325718E-03; + COFD[2292] = -1.62876317E+01; + COFD[2293] = 3.68407693E+00; + COFD[2294] = -2.66228170E-01; + COFD[2295] = 1.16542305E-02; + COFD[2296] = -1.62876317E+01; + COFD[2297] = 3.68407693E+00; + COFD[2298] = -2.66228170E-01; + COFD[2299] = 1.16542305E-02; + COFD[2300] = -1.78576817E+01; + COFD[2301] = 4.25122035E+00; + COFD[2302] = -3.38698235E-01; + COFD[2303] = 1.47551928E-02; + COFD[2304] = -1.36978066E+01; + COFD[2305] = 2.73155251E+00; + COFD[2306] = -1.44594082E-01; + COFD[2307] = 6.46883252E-03; + COFD[2308] = -1.36978066E+01; + COFD[2309] = 2.73155251E+00; + COFD[2310] = -1.44594082E-01; + COFD[2311] = 6.46883252E-03; + COFD[2312] = -1.47456106E+01; + COFD[2313] = 3.14480429E+00; + COFD[2314] = -1.97906290E-01; + COFD[2315] = 8.76325718E-03; + COFD[2316] = -1.47381710E+01; + COFD[2317] = 3.14480429E+00; + COFD[2318] = -1.97906290E-01; + COFD[2319] = 8.76325718E-03; + COFD[2320] = -1.90109410E+01; + COFD[2321] = 4.82909392E+00; + COFD[2322] = -4.08610711E-01; + COFD[2323] = 1.75802236E-02; + COFD[2324] = -1.64977272E+01; + COFD[2325] = 3.72316581E+00; + COFD[2326] = -2.71276511E-01; + COFD[2327] = 1.18720331E-02; + COFD[2328] = -1.33354626E+01; + COFD[2329] = 2.73155251E+00; + COFD[2330] = -1.44594082E-01; + COFD[2331] = 6.46883252E-03; + COFD[2332] = -1.78550650E+01; + COFD[2333] = 4.25122035E+00; + COFD[2334] = -3.38698235E-01; + COFD[2335] = 1.47551928E-02; + COFD[2336] = -1.33779841E+01; + COFD[2337] = 2.80913567E+00; + COFD[2338] = -1.54536855E-01; + COFD[2339] = 6.89359313E-03; + COFD[2340] = -1.36891980E+01; + COFD[2341] = 2.73155251E+00; + COFD[2342] = -1.44594082E-01; + COFD[2343] = 6.46883252E-03; + COFD[2344] = -1.33994064E+01; + COFD[2345] = 2.80913567E+00; + COFD[2346] = -1.54536855E-01; + COFD[2347] = 6.89359313E-03; + COFD[2348] = -1.47381710E+01; + COFD[2349] = 3.14480429E+00; + COFD[2350] = -1.97906290E-01; + COFD[2351] = 8.76325718E-03; + COFD[2352] = -1.63029340E+01; + COFD[2353] = 3.68407693E+00; + COFD[2354] = -2.66228170E-01; + COFD[2355] = 1.16542305E-02; + COFD[2356] = -1.51009746E+01; + COFD[2357] = 3.27505697E+00; + COFD[2358] = -2.14306851E-01; + COFD[2359] = 9.45219335E-03; + COFD[2360] = -1.42780328E+01; + COFD[2361] = 2.97137588E+00; + COFD[2362] = -1.75491257E-01; + COFD[2363] = 7.79646773E-03; + COFD[2364] = -1.01486621E+01; + COFD[2365] = 1.79974659E+00; + COFD[2366] = -2.00722664E-02; + COFD[2367] = 9.21608576E-04; + COFD[2368] = -1.10367385E+01; + COFD[2369] = 2.19094415E+00; + COFD[2370] = -7.11992510E-02; + COFD[2371] = 3.14105973E-03; + COFD[2372] = -1.34492865E+01; + COFD[2373] = 3.34156587E+00; + COFD[2374] = -2.22853306E-01; + COFD[2375] = 9.81883417E-03; + COFD[2376] = -1.45001273E+01; + COFD[2377] = 3.05837263E+00; + COFD[2378] = -1.86672802E-01; + COFD[2379] = 8.27575734E-03; + COFD[2380] = -1.34296968E+01; + COFD[2381] = 2.80913567E+00; + COFD[2382] = -1.54536855E-01; + COFD[2383] = 6.89359313E-03; + COFD[2384] = -1.95861373E+01; + COFD[2385] = 5.05708283E+00; + COFD[2386] = -4.35739290E-01; + COFD[2387] = 1.86583205E-02; + COFD[2388] = -1.34494148E+01; + COFD[2389] = 2.80913567E+00; + COFD[2390] = -1.54536855E-01; + COFD[2391] = 6.89359313E-03; + COFD[2392] = -1.45146845E+01; + COFD[2393] = 3.05837263E+00; + COFD[2394] = -1.86672802E-01; + COFD[2395] = 8.27575734E-03; + COFD[2396] = -1.45075753E+01; + COFD[2397] = 3.05837263E+00; + COFD[2398] = -1.86672802E-01; + COFD[2399] = 8.27575734E-03; + COFD[2400] = -1.42948900E+01; + COFD[2401] = 2.97115231E+00; + COFD[2402] = -1.75463252E-01; + COFD[2403] = 7.79530067E-03; + COFD[2404] = -1.70265556E+01; + COFD[2405] = 3.93849401E+00; + COFD[2406] = -2.99416642E-01; + COFD[2407] = 1.31020815E-02; + COFD[2408] = -1.62833796E+01; + COFD[2409] = 3.68407693E+00; + COFD[2410] = -2.66228170E-01; + COFD[2411] = 1.16542305E-02; + COFD[2412] = -1.47303677E+01; + COFD[2413] = 3.14480429E+00; + COFD[2414] = -1.97906290E-01; + COFD[2415] = 8.76325718E-03; + COFD[2416] = -1.62876317E+01; + COFD[2417] = 3.68407693E+00; + COFD[2418] = -2.66228170E-01; + COFD[2419] = 1.16542305E-02; + COFD[2420] = -1.62876317E+01; + COFD[2421] = 3.68407693E+00; + COFD[2422] = -2.66228170E-01; + COFD[2423] = 1.16542305E-02; + COFD[2424] = -1.78576817E+01; + COFD[2425] = 4.25122035E+00; + COFD[2426] = -3.38698235E-01; + COFD[2427] = 1.47551928E-02; + COFD[2428] = -1.36978066E+01; + COFD[2429] = 2.73155251E+00; + COFD[2430] = -1.44594082E-01; + COFD[2431] = 6.46883252E-03; + COFD[2432] = -1.36978066E+01; + COFD[2433] = 2.73155251E+00; + COFD[2434] = -1.44594082E-01; + COFD[2435] = 6.46883252E-03; + COFD[2436] = -1.47456106E+01; + COFD[2437] = 3.14480429E+00; + COFD[2438] = -1.97906290E-01; + COFD[2439] = 8.76325718E-03; + COFD[2440] = -1.47381710E+01; + COFD[2441] = 3.14480429E+00; + COFD[2442] = -1.97906290E-01; + COFD[2443] = 8.76325718E-03; + COFD[2444] = -1.90109410E+01; + COFD[2445] = 4.82909392E+00; + COFD[2446] = -4.08610711E-01; + COFD[2447] = 1.75802236E-02; + COFD[2448] = -1.64977272E+01; + COFD[2449] = 3.72316581E+00; + COFD[2450] = -2.71276511E-01; + COFD[2451] = 1.18720331E-02; + COFD[2452] = -1.33354626E+01; + COFD[2453] = 2.73155251E+00; + COFD[2454] = -1.44594082E-01; + COFD[2455] = 6.46883252E-03; + COFD[2456] = -1.78550650E+01; + COFD[2457] = 4.25122035E+00; + COFD[2458] = -3.38698235E-01; + COFD[2459] = 1.47551928E-02; + COFD[2460] = -1.33779841E+01; + COFD[2461] = 2.80913567E+00; + COFD[2462] = -1.54536855E-01; + COFD[2463] = 6.89359313E-03; + COFD[2464] = -1.36891980E+01; + COFD[2465] = 2.73155251E+00; + COFD[2466] = -1.44594082E-01; + COFD[2467] = 6.46883252E-03; + COFD[2468] = -1.33994064E+01; + COFD[2469] = 2.80913567E+00; + COFD[2470] = -1.54536855E-01; + COFD[2471] = 6.89359313E-03; + COFD[2472] = -1.47381710E+01; + COFD[2473] = 3.14480429E+00; + COFD[2474] = -1.97906290E-01; + COFD[2475] = 8.76325718E-03; + COFD[2476] = -1.63029340E+01; + COFD[2477] = 3.68407693E+00; + COFD[2478] = -2.66228170E-01; + COFD[2479] = 1.16542305E-02; + COFD[2480] = -1.66447370E+01; + COFD[2481] = 3.87567029E+00; + COFD[2482] = -2.91269312E-01; + COFD[2483] = 1.27483193E-02; + COFD[2484] = -1.55444803E+01; + COFD[2485] = 3.46766436E+00; + COFD[2486] = -2.39228775E-01; + COFD[2487] = 1.05291747E-02; + COFD[2488] = -1.10883400E+01; + COFD[2489] = 2.23154753E+00; + COFD[2490] = -8.23424809E-02; + COFD[2491] = 3.90469203E-03; + COFD[2492] = -1.20886512E+01; + COFD[2493] = 2.64389960E+00; + COFD[2494] = -1.33241706E-01; + COFD[2495] = 5.97810200E-03; + COFD[2496] = -1.50150551E+01; + COFD[2497] = 3.96853403E+00; + COFD[2498] = -3.03320126E-01; + COFD[2499] = 1.32719819E-02; + COFD[2500] = -1.58124694E+01; + COFD[2501] = 3.57122377E+00; + COFD[2502] = -2.52409987E-01; + COFD[2503] = 1.10900562E-02; + COFD[2504] = -1.45170482E+01; + COFD[2505] = 3.24450689E+00; + COFD[2506] = -2.10570734E-01; + COFD[2507] = 9.30026771E-03; + COFD[2508] = -2.09312389E+01; + COFD[2509] = 5.50410224E+00; + COFD[2510] = -4.82760329E-01; + COFD[2511] = 2.02578587E-02; + COFD[2512] = -1.45374222E+01; + COFD[2513] = 3.24450689E+00; + COFD[2514] = -2.10570734E-01; + COFD[2515] = 9.30026771E-03; + COFD[2516] = -1.58277533E+01; + COFD[2517] = 3.57122377E+00; + COFD[2518] = -2.52409987E-01; + COFD[2519] = 1.10900562E-02; + COFD[2520] = -1.58202864E+01; + COFD[2521] = 3.57122377E+00; + COFD[2522] = -2.52409987E-01; + COFD[2523] = 1.10900562E-02; + COFD[2524] = -1.55619173E+01; + COFD[2525] = 3.46735141E+00; + COFD[2526] = -2.39189370E-01; + COFD[2527] = 1.05275176E-02; + COFD[2528] = -1.86270955E+01; + COFD[2529] = 4.53681554E+00; + COFD[2530] = -3.73517224E-01; + COFD[2531] = 1.61730724E-02; + COFD[2532] = -1.80185320E+01; + COFD[2533] = 4.34871946E+00; + COFD[2534] = -3.50542624E-01; + COFD[2535] = 1.52355319E-02; + COFD[2536] = -1.60262160E+01; + COFD[2537] = 3.64795923E+00; + COFD[2538] = -2.61984156E-01; + COFD[2539] = 1.14893124E-02; + COFD[2540] = -1.80230324E+01; + COFD[2541] = 4.34871946E+00; + COFD[2542] = -3.50542624E-01; + COFD[2543] = 1.52355319E-02; + COFD[2544] = -1.80230324E+01; + COFD[2545] = 4.34871946E+00; + COFD[2546] = -3.50542624E-01; + COFD[2547] = 1.52355319E-02; + COFD[2548] = -1.94906126E+01; + COFD[2549] = 4.84702690E+00; + COFD[2550] = -4.10607260E-01; + COFD[2551] = 1.76533032E-02; + COFD[2552] = -1.47456106E+01; + COFD[2553] = 3.14480429E+00; + COFD[2554] = -1.97906290E-01; + COFD[2555] = 8.76325718E-03; + COFD[2556] = -1.47456106E+01; + COFD[2557] = 3.14480429E+00; + COFD[2558] = -1.97906290E-01; + COFD[2559] = 8.76325718E-03; + COFD[2560] = -1.60422082E+01; + COFD[2561] = 3.64795923E+00; + COFD[2562] = -2.61984156E-01; + COFD[2563] = 1.14893124E-02; + COFD[2564] = -1.60343999E+01; + COFD[2565] = 3.64795923E+00; + COFD[2566] = -2.61984156E-01; + COFD[2567] = 1.14893124E-02; + COFD[2568] = -2.05737846E+01; + COFD[2569] = 5.37634919E+00; + COFD[2570] = -4.70693222E-01; + COFD[2571] = 1.99144603E-02; + COFD[2572] = -1.82276511E+01; + COFD[2573] = 4.38314454E+00; + COFD[2574] = -3.54844523E-01; + COFD[2575] = 1.54154407E-02; + COFD[2576] = -1.43687616E+01; + COFD[2577] = 3.14480429E+00; + COFD[2578] = -1.97906290E-01; + COFD[2579] = 8.76325718E-03; + COFD[2580] = -1.94878249E+01; + COFD[2581] = 4.84702690E+00; + COFD[2582] = -4.10607260E-01; + COFD[2583] = 1.76533032E-02; + COFD[2584] = -1.44631465E+01; + COFD[2585] = 3.24450689E+00; + COFD[2586] = -2.10570734E-01; + COFD[2587] = 9.30026771E-03; + COFD[2588] = -1.47365962E+01; + COFD[2589] = 3.14480429E+00; + COFD[2590] = -1.97906290E-01; + COFD[2591] = 8.76325718E-03; + COFD[2592] = -1.44852526E+01; + COFD[2593] = 3.24450689E+00; + COFD[2594] = -2.10570734E-01; + COFD[2595] = 9.30026771E-03; + COFD[2596] = -1.60343999E+01; + COFD[2597] = 3.64795923E+00; + COFD[2598] = -2.61984156E-01; + COFD[2599] = 1.14893124E-02; + COFD[2600] = -1.80379994E+01; + COFD[2601] = 4.34871946E+00; + COFD[2602] = -3.50542624E-01; + COFD[2603] = 1.52355319E-02; + COFD[2604] = -1.66361946E+01; + COFD[2605] = 3.87567029E+00; + COFD[2606] = -2.91269312E-01; + COFD[2607] = 1.27483193E-02; + COFD[2608] = -1.55373090E+01; + COFD[2609] = 3.46766436E+00; + COFD[2610] = -2.39228775E-01; + COFD[2611] = 1.05291747E-02; + COFD[2612] = -1.10866417E+01; + COFD[2613] = 2.23154753E+00; + COFD[2614] = -8.23424809E-02; + COFD[2615] = 3.90469203E-03; + COFD[2616] = -1.20877466E+01; + COFD[2617] = 2.64389960E+00; + COFD[2618] = -1.33241706E-01; + COFD[2619] = 5.97810200E-03; + COFD[2620] = -1.50145893E+01; + COFD[2621] = 3.96853403E+00; + COFD[2622] = -3.03320126E-01; + COFD[2623] = 1.32719819E-02; + COFD[2624] = -1.58047841E+01; + COFD[2625] = 3.57122377E+00; + COFD[2626] = -2.52409987E-01; + COFD[2627] = 1.10900562E-02; + COFD[2628] = -1.45119385E+01; + COFD[2629] = 3.24450689E+00; + COFD[2630] = -2.10570734E-01; + COFD[2631] = 9.30026771E-03; + COFD[2632] = -2.09257148E+01; + COFD[2633] = 5.50410224E+00; + COFD[2634] = -4.82760329E-01; + COFD[2635] = 2.02578587E-02; + COFD[2636] = -1.45321011E+01; + COFD[2637] = 3.24450689E+00; + COFD[2638] = -2.10570734E-01; + COFD[2639] = 9.30026771E-03; + COFD[2640] = -1.58198313E+01; + COFD[2641] = 3.57122377E+00; + COFD[2642] = -2.52409987E-01; + COFD[2643] = 1.10900562E-02; + COFD[2644] = -1.58124809E+01; + COFD[2645] = 3.57122377E+00; + COFD[2646] = -2.52409987E-01; + COFD[2647] = 1.10900562E-02; + COFD[2648] = -1.55544808E+01; + COFD[2649] = 3.46735141E+00; + COFD[2650] = -2.39189370E-01; + COFD[2651] = 1.05275176E-02; + COFD[2652] = -1.86181839E+01; + COFD[2653] = 4.53681554E+00; + COFD[2654] = -3.73517224E-01; + COFD[2655] = 1.61730724E-02; + COFD[2656] = -1.80094534E+01; + COFD[2657] = 4.34871946E+00; + COFD[2658] = -3.50542624E-01; + COFD[2659] = 1.52355319E-02; + COFD[2660] = -1.60186516E+01; + COFD[2661] = 3.64795923E+00; + COFD[2662] = -2.61984156E-01; + COFD[2663] = 1.14893124E-02; + COFD[2664] = -1.80138725E+01; + COFD[2665] = 4.34871946E+00; + COFD[2666] = -3.50542624E-01; + COFD[2667] = 1.52355319E-02; + COFD[2668] = -1.80138725E+01; + COFD[2669] = 4.34871946E+00; + COFD[2670] = -3.50542624E-01; + COFD[2671] = 1.52355319E-02; + COFD[2672] = -1.94803915E+01; + COFD[2673] = 4.84702690E+00; + COFD[2674] = -4.10607260E-01; + COFD[2675] = 1.76533032E-02; + COFD[2676] = -1.47381710E+01; + COFD[2677] = 3.14480429E+00; + COFD[2678] = -1.97906290E-01; + COFD[2679] = 8.76325718E-03; + COFD[2680] = -1.47381710E+01; + COFD[2681] = 3.14480429E+00; + COFD[2682] = -1.97906290E-01; + COFD[2683] = 8.76325718E-03; + COFD[2684] = -1.60343999E+01; + COFD[2685] = 3.64795923E+00; + COFD[2686] = -2.61984156E-01; + COFD[2687] = 1.14893124E-02; + COFD[2688] = -1.60267117E+01; + COFD[2689] = 3.64795923E+00; + COFD[2690] = -2.61984156E-01; + COFD[2691] = 1.14893124E-02; + COFD[2692] = -2.05684585E+01; + COFD[2693] = 5.37634919E+00; + COFD[2694] = -4.70693222E-01; + COFD[2695] = 1.99144603E-02; + COFD[2696] = -1.82199600E+01; + COFD[2697] = 4.38314454E+00; + COFD[2698] = -3.54844523E-01; + COFD[2699] = 1.54154407E-02; + COFD[2700] = -1.43640965E+01; + COFD[2701] = 3.14480429E+00; + COFD[2702] = -1.97906290E-01; + COFD[2703] = 8.76325718E-03; + COFD[2704] = -1.94776600E+01; + COFD[2705] = 4.84702690E+00; + COFD[2706] = -4.10607260E-01; + COFD[2707] = 1.76533032E-02; + COFD[2708] = -1.44582517E+01; + COFD[2709] = 3.24450689E+00; + COFD[2710] = -2.10570734E-01; + COFD[2711] = 9.30026771E-03; + COFD[2712] = -1.47292885E+01; + COFD[2713] = 3.14480429E+00; + COFD[2714] = -1.97906290E-01; + COFD[2715] = 8.76325718E-03; + COFD[2716] = -1.44801377E+01; + COFD[2717] = 3.24450689E+00; + COFD[2718] = -2.10570734E-01; + COFD[2719] = 9.30026771E-03; + COFD[2720] = -1.60267117E+01; + COFD[2721] = 3.64795923E+00; + COFD[2722] = -2.61984156E-01; + COFD[2723] = 1.14893124E-02; + COFD[2724] = -1.80304320E+01; + COFD[2725] = 4.34871946E+00; + COFD[2726] = -3.50542624E-01; + COFD[2727] = 1.52355319E-02; + COFD[2728] = -2.09309944E+01; + COFD[2729] = 5.48417182E+00; + COFD[2730] = -4.80595673E-01; + COFD[2731] = 2.01807046E-02; + COFD[2732] = -2.04317489E+01; + COFD[2733] = 5.33236126E+00; + COFD[2734] = -4.66969600E-01; + COFD[2735] = 1.98332514E-02; + COFD[2736] = -1.22210872E+01; + COFD[2737] = 2.70853069E+00; + COFD[2738] = -1.41645737E-01; + COFD[2739] = 6.34289768E-03; + COFD[2740] = -1.61691404E+01; + COFD[2741] = 4.23579872E+00; + COFD[2742] = -3.36814569E-01; + COFD[2743] = 1.46782930E-02; + COFD[2744] = -1.94027720E+01; + COFD[2745] = 5.54487588E+00; + COFD[2746] = -4.86919661E-01; + COFD[2747] = 2.03935297E-02; + COFD[2748] = -2.06107066E+01; + COFD[2749] = 5.38762349E+00; + COFD[2750] = -4.71526408E-01; + COFD[2751] = 1.99251819E-02; + COFD[2752] = -1.89669550E+01; + COFD[2753] = 4.98075560E+00; + COFD[2754] = -4.26721620E-01; + COFD[2755] = 1.83024823E-02; + COFD[2756] = -1.47127611E+01; + COFD[2757] = 2.26103996E+00; + COFD[2758] = 4.18078573E-02; + COFD[2759] = -6.41615598E-03; + COFD[2760] = -1.89824738E+01; + COFD[2761] = 4.98075560E+00; + COFD[2762] = -4.26721620E-01; + COFD[2763] = 1.83024823E-02; + COFD[2764] = -2.03712500E+01; + COFD[2765] = 5.32029196E+00; + COFD[2766] = -4.65578114E-01; + COFD[2767] = 1.97797257E-02; + COFD[2768] = -2.03661810E+01; + COFD[2769] = 5.32029196E+00; + COFD[2770] = -4.65578114E-01; + COFD[2771] = 1.97797257E-02; + COFD[2772] = -2.04433995E+01; + COFD[2773] = 5.33200305E+00; + COFD[2774] = -4.66928380E-01; + COFD[2775] = 1.98316696E-02; + COFD[2776] = -2.16211139E+01; + COFD[2777] = 5.50657794E+00; + COFD[2778] = -4.63927523E-01; + COFD[2779] = 1.86800112E-02; + COFD[2780] = -2.15739396E+01; + COFD[2781] = 5.58518186E+00; + COFD[2782] = -4.80813479E-01; + COFD[2783] = 1.96787936E-02; + COFD[2784] = -2.05628479E+01; + COFD[2785] = 5.37634919E+00; + COFD[2786] = -4.70693222E-01; + COFD[2787] = 1.99144603E-02; + COFD[2788] = -2.15768444E+01; + COFD[2789] = 5.58518186E+00; + COFD[2790] = -4.80813479E-01; + COFD[2791] = 1.96787936E-02; + COFD[2792] = -2.15768444E+01; + COFD[2793] = 5.58518186E+00; + COFD[2794] = -4.80813479E-01; + COFD[2795] = 1.96787936E-02; + COFD[2796] = -2.12081959E+01; + COFD[2797] = 5.25015888E+00; + COFD[2798] = -4.17586588E-01; + COFD[2799] = 1.61516138E-02; + COFD[2800] = -1.90109410E+01; + COFD[2801] = 4.82909392E+00; + COFD[2802] = -4.08610711E-01; + COFD[2803] = 1.75802236E-02; + COFD[2804] = -1.90109410E+01; + COFD[2805] = 4.82909392E+00; + COFD[2806] = -4.08610711E-01; + COFD[2807] = 1.75802236E-02; + COFD[2808] = -2.05737846E+01; + COFD[2809] = 5.37634919E+00; + COFD[2810] = -4.70693222E-01; + COFD[2811] = 1.99144603E-02; + COFD[2812] = -2.05684585E+01; + COFD[2813] = 5.37634919E+00; + COFD[2814] = -4.70693222E-01; + COFD[2815] = 1.99144603E-02; + COFD[2816] = -1.67853017E+01; + COFD[2817] = 3.25474819E+00; + COFD[2818] = -1.10627237E-01; + COFD[2819] = 1.02616738E-03; + COFD[2820] = -2.17049238E+01; + COFD[2821] = 5.51601871E+00; + COFD[2822] = -4.65843688E-01; + COFD[2823] = 1.87908436E-02; + COFD[2824] = -1.86830530E+01; + COFD[2825] = 4.82909392E+00; + COFD[2826] = -4.08610711E-01; + COFD[2827] = 1.75802236E-02; + COFD[2828] = -2.12064694E+01; + COFD[2829] = 5.25015888E+00; + COFD[2830] = -4.17586588E-01; + COFD[2831] = 1.61516138E-02; + COFD[2832] = -1.89147506E+01; + COFD[2833] = 4.98075560E+00; + COFD[2834] = -4.26721620E-01; + COFD[2835] = 1.83024823E-02; + COFD[2836] = -1.90046955E+01; + COFD[2837] = 4.82909392E+00; + COFD[2838] = -4.08610711E-01; + COFD[2839] = 1.75802236E-02; + COFD[2840] = -2.01575499E+01; + COFD[2841] = 5.37354604E+00; + COFD[2842] = -4.70508026E-01; + COFD[2843] = 1.99136682E-02; + COFD[2844] = -2.05684585E+01; + COFD[2845] = 5.37634919E+00; + COFD[2846] = -4.70693222E-01; + COFD[2847] = 1.99144603E-02; + COFD[2848] = -2.16335876E+01; + COFD[2849] = 5.58518186E+00; + COFD[2850] = -4.80813479E-01; + COFD[2851] = 1.96787936E-02; + COFD[2852] = -1.87817832E+01; + COFD[2853] = 4.57962473E+00; + COFD[2854] = -3.78727534E-01; + COFD[2855] = 1.63846967E-02; + COFD[2856] = -1.76215377E+01; + COFD[2857] = 4.16885068E+00; + COFD[2858] = -3.28516035E-01; + COFD[2859] = 1.43340744E-02; + COFD[2860] = -1.08707823E+01; + COFD[2861] = 1.98709546E+00; + COFD[2862] = -4.27771402E-02; + COFD[2863] = 1.81749490E-03; + COFD[2864] = -1.34619205E+01; + COFD[2865] = 3.07392586E+00; + COFD[2866] = -1.88686437E-01; + COFD[2867] = 8.36275856E-03; + COFD[2868] = -1.72055588E+01; + COFD[2869] = 4.66875212E+00; + COFD[2870] = -3.89780131E-01; + COFD[2871] = 1.68436252E-02; + COFD[2872] = -1.79257516E+01; + COFD[2873] = 4.28074656E+00; + COFD[2874] = -3.42272429E-01; + COFD[2875] = 1.48995988E-02; + COFD[2876] = -1.65447057E+01; + COFD[2877] = 3.92040487E+00; + COFD[2878] = -2.97068442E-01; + COFD[2879] = 1.30000135E-02; + COFD[2880] = -2.12506564E+01; + COFD[2881] = 5.23263977E+00; + COFD[2882] = -4.14499490E-01; + COFD[2883] = 1.59858003E-02; + COFD[2884] = -1.65648734E+01; + COFD[2885] = 3.92040487E+00; + COFD[2886] = -2.97068442E-01; + COFD[2887] = 1.30000135E-02; + COFD[2888] = -1.79408045E+01; + COFD[2889] = 4.28074656E+00; + COFD[2890] = -3.42272429E-01; + COFD[2891] = 1.48995988E-02; + COFD[2892] = -1.79334513E+01; + COFD[2893] = 4.28074656E+00; + COFD[2894] = -3.42272429E-01; + COFD[2895] = 1.48995988E-02; + COFD[2896] = -1.76386291E+01; + COFD[2897] = 4.16851125E+00; + COFD[2898] = -3.28473932E-01; + COFD[2899] = 1.43323241E-02; + COFD[2900] = -2.07567853E+01; + COFD[2901] = 5.20655416E+00; + COFD[2902] = -4.52109025E-01; + COFD[2903] = 1.92460992E-02; + COFD[2904] = -2.02329931E+01; + COFD[2905] = 5.06106939E+00; + COFD[2906] = -4.36210404E-01; + COFD[2907] = 1.86769307E-02; + COFD[2908] = -1.82118969E+01; + COFD[2909] = 4.38314454E+00; + COFD[2910] = -3.54844523E-01; + COFD[2911] = 1.54154407E-02; + COFD[2912] = -2.02374142E+01; + COFD[2913] = 5.06106939E+00; + COFD[2914] = -4.36210404E-01; + COFD[2915] = 1.86769307E-02; + COFD[2916] = -2.02374142E+01; + COFD[2917] = 5.06106939E+00; + COFD[2918] = -4.36210404E-01; + COFD[2919] = 1.86769307E-02; + COFD[2920] = -2.14329323E+01; + COFD[2921] = 5.41700226E+00; + COFD[2922] = -4.73390866E-01; + COFD[2923] = 1.99277147E-02; + COFD[2924] = -1.64977272E+01; + COFD[2925] = 3.72316581E+00; + COFD[2926] = -2.71276511E-01; + COFD[2927] = 1.18720331E-02; + COFD[2928] = -1.64977272E+01; + COFD[2929] = 3.72316581E+00; + COFD[2930] = -2.71276511E-01; + COFD[2931] = 1.18720331E-02; + COFD[2932] = -1.82276511E+01; + COFD[2933] = 4.38314454E+00; + COFD[2934] = -3.54844523E-01; + COFD[2935] = 1.54154407E-02; + COFD[2936] = -1.82199600E+01; + COFD[2937] = 4.38314454E+00; + COFD[2938] = -3.54844523E-01; + COFD[2939] = 1.54154407E-02; + COFD[2940] = -2.17049238E+01; + COFD[2941] = 5.51601871E+00; + COFD[2942] = -4.65843688E-01; + COFD[2943] = 1.87908436E-02; + COFD[2944] = -2.04168324E+01; + COFD[2945] = 5.09044464E+00; + COFD[2946] = -4.39653461E-01; + COFD[2947] = 1.88117190E-02; + COFD[2948] = -1.61370785E+01; + COFD[2949] = 3.72316581E+00; + COFD[2950] = -2.71276511E-01; + COFD[2951] = 1.18720331E-02; + COFD[2952] = -2.14301995E+01; + COFD[2953] = 5.41700226E+00; + COFD[2954] = -4.73390866E-01; + COFD[2955] = 1.99277147E-02; + COFD[2956] = -1.64944536E+01; + COFD[2957] = 3.92040487E+00; + COFD[2958] = -2.97068442E-01; + COFD[2959] = 1.30000135E-02; + COFD[2960] = -1.64888415E+01; + COFD[2961] = 3.72316581E+00; + COFD[2962] = -2.71276511E-01; + COFD[2963] = 1.18720331E-02; + COFD[2964] = -1.65163449E+01; + COFD[2965] = 3.92040487E+00; + COFD[2966] = -2.97068442E-01; + COFD[2967] = 1.30000135E-02; + COFD[2968] = -1.82199600E+01; + COFD[2969] = 4.38314454E+00; + COFD[2970] = -3.54844523E-01; + COFD[2971] = 1.54154407E-02; + COFD[2972] = -2.02435759E+01; + COFD[2973] = 5.06106939E+00; + COFD[2974] = -4.36210404E-01; + COFD[2975] = 1.86769307E-02; + COFD[2976] = -1.47042106E+01; + COFD[2977] = 3.27505697E+00; + COFD[2978] = -2.14306851E-01; + COFD[2979] = 9.45219335E-03; + COFD[2980] = -1.39186828E+01; + COFD[2981] = 2.97137588E+00; + COFD[2982] = -1.75491257E-01; + COFD[2983] = 7.79646773E-03; + COFD[2984] = -9.92216640E+00; + COFD[2985] = 1.79974659E+00; + COFD[2986] = -2.00722664E-02; + COFD[2987] = 9.21608576E-04; + COFD[2988] = -1.08473079E+01; + COFD[2989] = 2.19094415E+00; + COFD[2990] = -7.11992510E-02; + COFD[2991] = 3.14105973E-03; + COFD[2992] = -1.32522938E+01; + COFD[2993] = 3.34156587E+00; + COFD[2994] = -2.22853306E-01; + COFD[2995] = 9.81883417E-03; + COFD[2996] = -1.41254300E+01; + COFD[2997] = 3.05837263E+00; + COFD[2998] = -1.86672802E-01; + COFD[2999] = 8.27575734E-03; + COFD[3000] = -1.31034501E+01; + COFD[3001] = 2.80913567E+00; + COFD[3002] = -1.54536855E-01; + COFD[3003] = 6.89359313E-03; + COFD[3004] = -1.92450630E+01; + COFD[3005] = 5.05708283E+00; + COFD[3006] = -4.35739290E-01; + COFD[3007] = 1.86583205E-02; + COFD[3008] = -1.31174788E+01; + COFD[3009] = 2.80913567E+00; + COFD[3010] = -1.54536855E-01; + COFD[3011] = 6.89359313E-03; + COFD[3012] = -1.41345352E+01; + COFD[3013] = 3.05837263E+00; + COFD[3014] = -1.86672802E-01; + COFD[3015] = 8.27575734E-03; + COFD[3016] = -1.41301009E+01; + COFD[3017] = 3.05837263E+00; + COFD[3018] = -1.86672802E-01; + COFD[3019] = 8.27575734E-03; + COFD[3020] = -1.39292538E+01; + COFD[3021] = 2.97115231E+00; + COFD[3022] = -1.75463252E-01; + COFD[3023] = 7.79530067E-03; + COFD[3024] = -1.66315381E+01; + COFD[3025] = 3.93849401E+00; + COFD[3026] = -2.99416642E-01; + COFD[3027] = 1.31020815E-02; + COFD[3028] = -1.58784406E+01; + COFD[3029] = 3.68407693E+00; + COFD[3030] = -2.66228170E-01; + COFD[3031] = 1.16542305E-02; + COFD[3032] = -1.43591756E+01; + COFD[3033] = 3.14480429E+00; + COFD[3034] = -1.97906290E-01; + COFD[3035] = 8.76325718E-03; + COFD[3036] = -1.58809491E+01; + COFD[3037] = 3.68407693E+00; + COFD[3038] = -2.66228170E-01; + COFD[3039] = 1.16542305E-02; + COFD[3040] = -1.58809491E+01; + COFD[3041] = 3.68407693E+00; + COFD[3042] = -2.66228170E-01; + COFD[3043] = 1.16542305E-02; + COFD[3044] = -1.74289175E+01; + COFD[3045] = 4.25122035E+00; + COFD[3046] = -3.38698235E-01; + COFD[3047] = 1.47551928E-02; + COFD[3048] = -1.33354626E+01; + COFD[3049] = 2.73155251E+00; + COFD[3050] = -1.44594082E-01; + COFD[3051] = 6.46883252E-03; + COFD[3052] = -1.33354626E+01; + COFD[3053] = 2.73155251E+00; + COFD[3054] = -1.44594082E-01; + COFD[3055] = 6.46883252E-03; + COFD[3056] = -1.43687616E+01; + COFD[3057] = 3.14480429E+00; + COFD[3058] = -1.97906290E-01; + COFD[3059] = 8.76325718E-03; + COFD[3060] = -1.43640965E+01; + COFD[3061] = 3.14480429E+00; + COFD[3062] = -1.97906290E-01; + COFD[3063] = 8.76325718E-03; + COFD[3064] = -1.86830530E+01; + COFD[3065] = 4.82909392E+00; + COFD[3066] = -4.08610711E-01; + COFD[3067] = 1.75802236E-02; + COFD[3068] = -1.61370785E+01; + COFD[3069] = 3.72316581E+00; + COFD[3070] = -2.71276511E-01; + COFD[3071] = 1.18720331E-02; + COFD[3072] = -1.30341700E+01; + COFD[3073] = 2.73155251E+00; + COFD[3074] = -1.44594082E-01; + COFD[3075] = 6.46883252E-03; + COFD[3076] = -1.74274414E+01; + COFD[3077] = 4.25122035E+00; + COFD[3078] = -3.38698235E-01; + COFD[3079] = 1.47551928E-02; + COFD[3080] = -1.30550382E+01; + COFD[3081] = 2.80913567E+00; + COFD[3082] = -1.54536855E-01; + COFD[3083] = 6.89359313E-03; + COFD[3084] = -1.33299692E+01; + COFD[3085] = 2.73155251E+00; + COFD[3086] = -1.44594082E-01; + COFD[3087] = 6.46883252E-03; + COFD[3088] = -1.30704546E+01; + COFD[3089] = 2.80913567E+00; + COFD[3090] = -1.54536855E-01; + COFD[3091] = 6.89359313E-03; + COFD[3092] = -1.43640965E+01; + COFD[3093] = 3.14480429E+00; + COFD[3094] = -1.97906290E-01; + COFD[3095] = 8.76325718E-03; + COFD[3096] = -1.59394625E+01; + COFD[3097] = 3.68407693E+00; + COFD[3098] = -2.66228170E-01; + COFD[3099] = 1.16542305E-02; + COFD[3100] = -2.01068988E+01; + COFD[3101] = 5.05954824E+00; + COFD[3102] = -4.36030731E-01; + COFD[3103] = 1.86698373E-02; + COFD[3104] = -1.88925697E+01; + COFD[3105] = 4.64901542E+00; + COFD[3106] = -3.87392964E-01; + COFD[3107] = 1.67470740E-02; + COFD[3108] = -1.14852170E+01; + COFD[3109] = 2.31500582E+00; + COFD[3110] = -8.85636550E-02; + COFD[3111] = 3.95221215E-03; + COFD[3112] = -1.43192137E+01; + COFD[3113] = 3.46929508E+00; + COFD[3114] = -2.39434132E-01; + COFD[3115] = 1.05378123E-02; + COFD[3116] = -1.82976533E+01; + COFD[3117] = 5.12919743E+00; + COFD[3118] = -4.44101569E-01; + COFD[3119] = 1.89814640E-02; + COFD[3120] = -1.92055596E+01; + COFD[3121] = 4.75780017E+00; + COFD[3122] = -4.00245597E-01; + COFD[3123] = 1.72532160E-02; + COFD[3124] = -1.76940550E+01; + COFD[3125] = 4.38770680E+00; + COFD[3126] = -3.55417486E-01; + COFD[3127] = 1.54395368E-02; + COFD[3128] = -2.05979550E+01; + COFD[3129] = 4.95270274E+00; + COFD[3130] = -3.68776104E-01; + COFD[3131] = 1.36319669E-02; + COFD[3132] = -1.77181845E+01; + COFD[3133] = 4.38770680E+00; + COFD[3134] = -3.55417486E-01; + COFD[3135] = 1.54395368E-02; + COFD[3136] = -1.92254992E+01; + COFD[3137] = 4.75780017E+00; + COFD[3138] = -4.00245597E-01; + COFD[3139] = 1.72532160E-02; + COFD[3140] = -1.92157346E+01; + COFD[3141] = 4.75780017E+00; + COFD[3142] = -4.00245597E-01; + COFD[3143] = 1.72532160E-02; + COFD[3144] = -1.89147986E+01; + COFD[3145] = 4.64859330E+00; + COFD[3146] = -3.87341074E-01; + COFD[3147] = 1.67449382E-02; + COFD[3148] = -2.18270783E+01; + COFD[3149] = 5.54455172E+00; + COFD[3150] = -4.86886991E-01; + COFD[3151] = 2.03924829E-02; + COFD[3152] = -2.13036027E+01; + COFD[3153] = 5.40830928E+00; + COFD[3154] = -4.72988519E-01; + COFD[3155] = 1.99395140E-02; + COFD[3156] = -1.94670570E+01; + COFD[3157] = 4.84702690E+00; + COFD[3158] = -4.10607260E-01; + COFD[3159] = 1.76533032E-02; + COFD[3160] = -2.13097951E+01; + COFD[3161] = 5.40830928E+00; + COFD[3162] = -4.72988519E-01; + COFD[3163] = 1.99395140E-02; + COFD[3164] = -2.13097951E+01; + COFD[3165] = 5.40830928E+00; + COFD[3166] = -4.72988519E-01; + COFD[3167] = 1.99395140E-02; + COFD[3168] = -2.21386224E+01; + COFD[3169] = 5.58193688E+00; + COFD[3170] = -4.82971193E-01; + COFD[3171] = 1.98750221E-02; + COFD[3172] = -1.78550650E+01; + COFD[3173] = 4.25122035E+00; + COFD[3174] = -3.38698235E-01; + COFD[3175] = 1.47551928E-02; + COFD[3176] = -1.78550650E+01; + COFD[3177] = 4.25122035E+00; + COFD[3178] = -3.38698235E-01; + COFD[3179] = 1.47551928E-02; + COFD[3180] = -1.94878249E+01; + COFD[3181] = 4.84702690E+00; + COFD[3182] = -4.10607260E-01; + COFD[3183] = 1.76533032E-02; + COFD[3184] = -1.94776600E+01; + COFD[3185] = 4.84702690E+00; + COFD[3186] = -4.10607260E-01; + COFD[3187] = 1.76533032E-02; + COFD[3188] = -2.12064694E+01; + COFD[3189] = 5.25015888E+00; + COFD[3190] = -4.17586588E-01; + COFD[3191] = 1.61516138E-02; + COFD[3192] = -2.14301995E+01; + COFD[3193] = 5.41700226E+00; + COFD[3194] = -4.73390866E-01; + COFD[3195] = 1.99277147E-02; + COFD[3196] = -1.74274414E+01; + COFD[3197] = 4.25122035E+00; + COFD[3198] = -3.38698235E-01; + COFD[3199] = 1.47551928E-02; + COFD[3200] = -2.21346071E+01; + COFD[3201] = 5.58193688E+00; + COFD[3202] = -4.82971193E-01; + COFD[3203] = 1.98750221E-02; + COFD[3204] = -1.76364055E+01; + COFD[3205] = 4.38770680E+00; + COFD[3206] = -3.55417486E-01; + COFD[3207] = 1.54395368E-02; + COFD[3208] = -1.78435001E+01; + COFD[3209] = 4.25122035E+00; + COFD[3210] = -3.38698235E-01; + COFD[3211] = 1.47551928E-02; + COFD[3212] = -1.76623919E+01; + COFD[3213] = 4.38770680E+00; + COFD[3214] = -3.55417486E-01; + COFD[3215] = 1.54395368E-02; + COFD[3216] = -1.94776600E+01; + COFD[3217] = 4.84702690E+00; + COFD[3218] = -4.10607260E-01; + COFD[3219] = 1.76533032E-02; + COFD[3220] = -2.12925553E+01; + COFD[3221] = 5.40830928E+00; + COFD[3222] = -4.72988519E-01; + COFD[3223] = 1.99395140E-02; + COFD[3224] = -1.49050178E+01; + COFD[3225] = 3.41988961E+00; + COFD[3226] = -2.33128386E-01; + COFD[3227] = 1.02689994E-02; + COFD[3228] = -1.40236167E+01; + COFD[3229] = 3.07549274E+00; + COFD[3230] = -1.88889344E-01; + COFD[3231] = 8.37152866E-03; + COFD[3232] = -9.88278718E+00; + COFD[3233] = 1.87770435E+00; + COFD[3234] = -3.14096583E-02; + COFD[3235] = 1.46939409E-03; + COFD[3236] = -1.09203428E+01; + COFD[3237] = 2.30836460E+00; + COFD[3238] = -8.76339315E-02; + COFD[3239] = 3.90878445E-03; + COFD[3240] = -1.33789967E+01; + COFD[3241] = 3.48624238E+00; + COFD[3242] = -2.41554467E-01; + COFD[3243] = 1.06263545E-02; + COFD[3244] = -1.42600522E+01; + COFD[3245] = 3.17651319E+00; + COFD[3246] = -2.02028974E-01; + COFD[3247] = 8.94232502E-03; + COFD[3248] = -1.31565325E+01; + COFD[3249] = 2.90778936E+00; + COFD[3250] = -1.67388544E-01; + COFD[3251] = 7.45220609E-03; + COFD[3252] = -1.93545859E+01; + COFD[3253] = 5.16013126E+00; + COFD[3254] = -4.46824543E-01; + COFD[3255] = 1.90464887E-02; + COFD[3256] = -1.31710897E+01; + COFD[3257] = 2.90778936E+00; + COFD[3258] = -1.67388544E-01; + COFD[3259] = 7.45220609E-03; + COFD[3260] = -1.42696077E+01; + COFD[3261] = 3.17651319E+00; + COFD[3262] = -2.02028974E-01; + COFD[3263] = 8.94232502E-03; + COFD[3264] = -1.42649530E+01; + COFD[3265] = 3.17651319E+00; + COFD[3266] = -2.02028974E-01; + COFD[3267] = 8.94232502E-03; + COFD[3268] = -1.40345311E+01; + COFD[3269] = 3.07518980E+00; + COFD[3270] = -1.88850114E-01; + COFD[3271] = 8.36983308E-03; + COFD[3272] = -1.68748925E+01; + COFD[3273] = 4.09077642E+00; + COFD[3274] = -3.18894990E-01; + COFD[3275] = 1.39371445E-02; + COFD[3276] = -1.62212145E+01; + COFD[3277] = 3.88250968E+00; + COFD[3278] = -2.92155848E-01; + COFD[3279] = 1.27867850E-02; + COFD[3280] = -1.44530909E+01; + COFD[3281] = 3.24450689E+00; + COFD[3282] = -2.10570734E-01; + COFD[3283] = 9.30026771E-03; + COFD[3284] = -1.62238594E+01; + COFD[3285] = 3.88250968E+00; + COFD[3286] = -2.92155848E-01; + COFD[3287] = 1.27867850E-02; + COFD[3288] = -1.62238594E+01; + COFD[3289] = 3.88250968E+00; + COFD[3290] = -2.92155848E-01; + COFD[3291] = 1.27867850E-02; + COFD[3292] = -1.76379673E+01; + COFD[3293] = 4.38770680E+00; + COFD[3294] = -3.55417486E-01; + COFD[3295] = 1.54395368E-02; + COFD[3296] = -1.33779841E+01; + COFD[3297] = 2.80913567E+00; + COFD[3298] = -1.54536855E-01; + COFD[3299] = 6.89359313E-03; + COFD[3300] = -1.33779841E+01; + COFD[3301] = 2.80913567E+00; + COFD[3302] = -1.54536855E-01; + COFD[3303] = 6.89359313E-03; + COFD[3304] = -1.44631465E+01; + COFD[3305] = 3.24450689E+00; + COFD[3306] = -2.10570734E-01; + COFD[3307] = 9.30026771E-03; + COFD[3308] = -1.44582517E+01; + COFD[3309] = 3.24450689E+00; + COFD[3310] = -2.10570734E-01; + COFD[3311] = 9.30026771E-03; + COFD[3312] = -1.89147506E+01; + COFD[3313] = 4.98075560E+00; + COFD[3314] = -4.26721620E-01; + COFD[3315] = 1.83024823E-02; + COFD[3316] = -1.64944536E+01; + COFD[3317] = 3.92040487E+00; + COFD[3318] = -2.97068442E-01; + COFD[3319] = 1.30000135E-02; + COFD[3320] = -1.30550382E+01; + COFD[3321] = 2.80913567E+00; + COFD[3322] = -1.54536855E-01; + COFD[3323] = 6.89359313E-03; + COFD[3324] = -1.76364055E+01; + COFD[3325] = 4.38770680E+00; + COFD[3326] = -3.55417486E-01; + COFD[3327] = 1.54395368E-02; + COFD[3328] = -1.31035309E+01; + COFD[3329] = 2.90778936E+00; + COFD[3330] = -1.67388544E-01; + COFD[3331] = 7.45220609E-03; + COFD[3332] = -1.33722286E+01; + COFD[3333] = 2.80913567E+00; + COFD[3334] = -1.54536855E-01; + COFD[3335] = 6.89359313E-03; + COFD[3336] = -1.31195110E+01; + COFD[3337] = 2.90778936E+00; + COFD[3338] = -1.67388544E-01; + COFD[3339] = 7.45220609E-03; + COFD[3340] = -1.44582517E+01; + COFD[3341] = 3.24450689E+00; + COFD[3342] = -2.10570734E-01; + COFD[3343] = 9.30026771E-03; + COFD[3344] = -1.62911759E+01; + COFD[3345] = 3.88250968E+00; + COFD[3346] = -2.92155848E-01; + COFD[3347] = 1.27867850E-02; + COFD[3348] = -1.50911577E+01; + COFD[3349] = 3.27505697E+00; + COFD[3350] = -2.14306851E-01; + COFD[3351] = 9.45219335E-03; + COFD[3352] = -1.42697208E+01; + COFD[3353] = 2.97137588E+00; + COFD[3354] = -1.75491257E-01; + COFD[3355] = 7.79646773E-03; + COFD[3356] = -1.01466238E+01; + COFD[3357] = 1.79974659E+00; + COFD[3358] = -2.00722664E-02; + COFD[3359] = 9.21608576E-04; + COFD[3360] = -1.10356472E+01; + COFD[3361] = 2.19094415E+00; + COFD[3362] = -7.11992510E-02; + COFD[3363] = 3.14105973E-03; + COFD[3364] = -1.34487228E+01; + COFD[3365] = 3.34156587E+00; + COFD[3366] = -2.22853306E-01; + COFD[3367] = 9.81883417E-03; + COFD[3368] = -1.44912481E+01; + COFD[3369] = 3.05837263E+00; + COFD[3370] = -1.86672802E-01; + COFD[3371] = 8.27575734E-03; + COFD[3372] = -1.34236967E+01; + COFD[3373] = 2.80913567E+00; + COFD[3374] = -1.54536855E-01; + COFD[3375] = 6.89359313E-03; + COFD[3376] = -1.95796677E+01; + COFD[3377] = 5.05708283E+00; + COFD[3378] = -4.35739290E-01; + COFD[3379] = 1.86583205E-02; + COFD[3380] = -1.34431749E+01; + COFD[3381] = 2.80913567E+00; + COFD[3382] = -1.54536855E-01; + COFD[3383] = 6.89359313E-03; + COFD[3384] = -1.45055453E+01; + COFD[3385] = 3.05837263E+00; + COFD[3386] = -1.86672802E-01; + COFD[3387] = 8.27575734E-03; + COFD[3388] = -1.44985640E+01; + COFD[3389] = 3.05837263E+00; + COFD[3390] = -1.86672802E-01; + COFD[3391] = 8.27575734E-03; + COFD[3392] = -1.42862849E+01; + COFD[3393] = 2.97115231E+00; + COFD[3394] = -1.75463252E-01; + COFD[3395] = 7.79530067E-03; + COFD[3396] = -1.70163379E+01; + COFD[3397] = 3.93849401E+00; + COFD[3398] = -2.99416642E-01; + COFD[3399] = 1.31020815E-02; + COFD[3400] = -1.62729811E+01; + COFD[3401] = 3.68407693E+00; + COFD[3402] = -2.66228170E-01; + COFD[3403] = 1.16542305E-02; + COFD[3404] = -1.47216216E+01; + COFD[3405] = 3.14480429E+00; + COFD[3406] = -1.97906290E-01; + COFD[3407] = 8.76325718E-03; + COFD[3408] = -1.62771453E+01; + COFD[3409] = 3.68407693E+00; + COFD[3410] = -2.66228170E-01; + COFD[3411] = 1.16542305E-02; + COFD[3412] = -1.62771453E+01; + COFD[3413] = 3.68407693E+00; + COFD[3414] = -2.66228170E-01; + COFD[3415] = 1.16542305E-02; + COFD[3416] = -1.78460568E+01; + COFD[3417] = 4.25122035E+00; + COFD[3418] = -3.38698235E-01; + COFD[3419] = 1.47551928E-02; + COFD[3420] = -1.36891980E+01; + COFD[3421] = 2.73155251E+00; + COFD[3422] = -1.44594082E-01; + COFD[3423] = 6.46883252E-03; + COFD[3424] = -1.36891980E+01; + COFD[3425] = 2.73155251E+00; + COFD[3426] = -1.44594082E-01; + COFD[3427] = 6.46883252E-03; + COFD[3428] = -1.47365962E+01; + COFD[3429] = 3.14480429E+00; + COFD[3430] = -1.97906290E-01; + COFD[3431] = 8.76325718E-03; + COFD[3432] = -1.47292885E+01; + COFD[3433] = 3.14480429E+00; + COFD[3434] = -1.97906290E-01; + COFD[3435] = 8.76325718E-03; + COFD[3436] = -1.90046955E+01; + COFD[3437] = 4.82909392E+00; + COFD[3438] = -4.08610711E-01; + COFD[3439] = 1.75802236E-02; + COFD[3440] = -1.64888415E+01; + COFD[3441] = 3.72316581E+00; + COFD[3442] = -2.71276511E-01; + COFD[3443] = 1.18720331E-02; + COFD[3444] = -1.33299692E+01; + COFD[3445] = 2.73155251E+00; + COFD[3446] = -1.44594082E-01; + COFD[3447] = 6.46883252E-03; + COFD[3448] = -1.78435001E+01; + COFD[3449] = 4.25122035E+00; + COFD[3450] = -3.38698235E-01; + COFD[3451] = 1.47551928E-02; + COFD[3452] = -1.33722286E+01; + COFD[3453] = 2.80913567E+00; + COFD[3454] = -1.54536855E-01; + COFD[3455] = 6.89359313E-03; + COFD[3456] = -1.36807352E+01; + COFD[3457] = 2.73155251E+00; + COFD[3458] = -1.44594082E-01; + COFD[3459] = 6.46883252E-03; + COFD[3460] = -1.33934005E+01; + COFD[3461] = 2.80913567E+00; + COFD[3462] = -1.54536855E-01; + COFD[3463] = 6.89359313E-03; + COFD[3464] = -1.47292885E+01; + COFD[3465] = 3.14480429E+00; + COFD[3466] = -1.97906290E-01; + COFD[3467] = 8.76325718E-03; + COFD[3468] = -1.62941846E+01; + COFD[3469] = 3.68407693E+00; + COFD[3470] = -2.66228170E-01; + COFD[3471] = 1.16542305E-02; + COFD[3472] = -1.49284191E+01; + COFD[3473] = 3.41988961E+00; + COFD[3474] = -2.33128386E-01; + COFD[3475] = 1.02689994E-02; + COFD[3476] = -1.40445265E+01; + COFD[3477] = 3.07549274E+00; + COFD[3478] = -1.88889344E-01; + COFD[3479] = 8.37152866E-03; + COFD[3480] = -9.88945164E+00; + COFD[3481] = 1.87770435E+00; + COFD[3482] = -3.14096583E-02; + COFD[3483] = 1.46939409E-03; + COFD[3484] = -1.09240801E+01; + COFD[3485] = 2.30836460E+00; + COFD[3486] = -8.76339315E-02; + COFD[3487] = 3.90878445E-03; + COFD[3488] = -1.33809795E+01; + COFD[3489] = 3.48624238E+00; + COFD[3490] = -2.41554467E-01; + COFD[3491] = 1.06263545E-02; + COFD[3492] = -1.42819328E+01; + COFD[3493] = 3.17651319E+00; + COFD[3494] = -2.02028974E-01; + COFD[3495] = 8.94232502E-03; + COFD[3496] = -1.31730281E+01; + COFD[3497] = 2.90778936E+00; + COFD[3498] = -1.67388544E-01; + COFD[3499] = 7.45220609E-03; + COFD[3500] = -2.10227896E+01; + COFD[3501] = 5.58489888E+00; + COFD[3502] = -4.81572427E-01; + COFD[3503] = 1.97432269E-02; + COFD[3504] = -1.31880809E+01; + COFD[3505] = 2.90778936E+00; + COFD[3506] = -1.67388544E-01; + COFD[3507] = 7.45220609E-03; + COFD[3508] = -1.42919200E+01; + COFD[3509] = 3.17651319E+00; + COFD[3510] = -2.02028974E-01; + COFD[3511] = 8.94232502E-03; + COFD[3512] = -1.42870540E+01; + COFD[3513] = 3.17651319E+00; + COFD[3514] = -2.02028974E-01; + COFD[3515] = 8.94232502E-03; + COFD[3516] = -1.40559476E+01; + COFD[3517] = 3.07518980E+00; + COFD[3518] = -1.88850114E-01; + COFD[3519] = 8.36983308E-03; + COFD[3520] = -1.68989140E+01; + COFD[3521] = 4.09077642E+00; + COFD[3522] = -3.18894990E-01; + COFD[3523] = 1.39371445E-02; + COFD[3524] = -1.62455101E+01; + COFD[3525] = 3.88250968E+00; + COFD[3526] = -2.92155848E-01; + COFD[3527] = 1.27867850E-02; + COFD[3528] = -1.44747472E+01; + COFD[3529] = 3.24450689E+00; + COFD[3530] = -2.10570734E-01; + COFD[3531] = 9.30026771E-03; + COFD[3532] = -1.62482871E+01; + COFD[3533] = 3.88250968E+00; + COFD[3534] = -2.92155848E-01; + COFD[3535] = 1.27867850E-02; + COFD[3536] = -1.62482871E+01; + COFD[3537] = 3.88250968E+00; + COFD[3538] = -2.92155848E-01; + COFD[3539] = 1.27867850E-02; + COFD[3540] = -1.76640371E+01; + COFD[3541] = 4.38770680E+00; + COFD[3542] = -3.55417486E-01; + COFD[3543] = 1.54395368E-02; + COFD[3544] = -1.33994064E+01; + COFD[3545] = 2.80913567E+00; + COFD[3546] = -1.54536855E-01; + COFD[3547] = 6.89359313E-03; + COFD[3548] = -1.33994064E+01; + COFD[3549] = 2.80913567E+00; + COFD[3550] = -1.54536855E-01; + COFD[3551] = 6.89359313E-03; + COFD[3552] = -1.44852526E+01; + COFD[3553] = 3.24450689E+00; + COFD[3554] = -2.10570734E-01; + COFD[3555] = 9.30026771E-03; + COFD[3556] = -1.44801377E+01; + COFD[3557] = 3.24450689E+00; + COFD[3558] = -2.10570734E-01; + COFD[3559] = 9.30026771E-03; + COFD[3560] = -2.01575499E+01; + COFD[3561] = 5.37354604E+00; + COFD[3562] = -4.70508026E-01; + COFD[3563] = 1.99136682E-02; + COFD[3564] = -1.65163449E+01; + COFD[3565] = 3.92040487E+00; + COFD[3566] = -2.97068442E-01; + COFD[3567] = 1.30000135E-02; + COFD[3568] = -1.30704546E+01; + COFD[3569] = 2.80913567E+00; + COFD[3570] = -1.54536855E-01; + COFD[3571] = 6.89359313E-03; + COFD[3572] = -1.76623919E+01; + COFD[3573] = 4.38770680E+00; + COFD[3574] = -3.55417486E-01; + COFD[3575] = 1.54395368E-02; + COFD[3576] = -1.31195110E+01; + COFD[3577] = 2.90778936E+00; + COFD[3578] = -1.67388544E-01; + COFD[3579] = 7.45220609E-03; + COFD[3580] = -1.33934005E+01; + COFD[3581] = 2.80913567E+00; + COFD[3582] = -1.54536855E-01; + COFD[3583] = 6.89359313E-03; + COFD[3584] = -1.31360187E+01; + COFD[3585] = 2.90778936E+00; + COFD[3586] = -1.67388544E-01; + COFD[3587] = 7.45220609E-03; + COFD[3588] = -1.44801377E+01; + COFD[3589] = 3.24450689E+00; + COFD[3590] = -2.10570734E-01; + COFD[3591] = 9.30026771E-03; + COFD[3592] = -1.63128378E+01; + COFD[3593] = 3.88250968E+00; + COFD[3594] = -2.92155848E-01; + COFD[3595] = 1.27867850E-02; + COFD[3596] = -1.66361946E+01; + COFD[3597] = 3.87567029E+00; + COFD[3598] = -2.91269312E-01; + COFD[3599] = 1.27483193E-02; + COFD[3600] = -1.55373090E+01; + COFD[3601] = 3.46766436E+00; + COFD[3602] = -2.39228775E-01; + COFD[3603] = 1.05291747E-02; + COFD[3604] = -1.10866417E+01; + COFD[3605] = 2.23154753E+00; + COFD[3606] = -8.23424809E-02; + COFD[3607] = 3.90469203E-03; + COFD[3608] = -1.20877466E+01; + COFD[3609] = 2.64389960E+00; + COFD[3610] = -1.33241706E-01; + COFD[3611] = 5.97810200E-03; + COFD[3612] = -1.50145893E+01; + COFD[3613] = 3.96853403E+00; + COFD[3614] = -3.03320126E-01; + COFD[3615] = 1.32719819E-02; + COFD[3616] = -1.58047841E+01; + COFD[3617] = 3.57122377E+00; + COFD[3618] = -2.52409987E-01; + COFD[3619] = 1.10900562E-02; + COFD[3620] = -1.45119385E+01; + COFD[3621] = 3.24450689E+00; + COFD[3622] = -2.10570734E-01; + COFD[3623] = 9.30026771E-03; + COFD[3624] = -2.09257148E+01; + COFD[3625] = 5.50410224E+00; + COFD[3626] = -4.82760329E-01; + COFD[3627] = 2.02578587E-02; + COFD[3628] = -1.45321011E+01; + COFD[3629] = 3.24450689E+00; + COFD[3630] = -2.10570734E-01; + COFD[3631] = 9.30026771E-03; + COFD[3632] = -1.58198313E+01; + COFD[3633] = 3.57122377E+00; + COFD[3634] = -2.52409987E-01; + COFD[3635] = 1.10900562E-02; + COFD[3636] = -1.58124809E+01; + COFD[3637] = 3.57122377E+00; + COFD[3638] = -2.52409987E-01; + COFD[3639] = 1.10900562E-02; + COFD[3640] = -1.55544808E+01; + COFD[3641] = 3.46735141E+00; + COFD[3642] = -2.39189370E-01; + COFD[3643] = 1.05275176E-02; + COFD[3644] = -1.86181839E+01; + COFD[3645] = 4.53681554E+00; + COFD[3646] = -3.73517224E-01; + COFD[3647] = 1.61730724E-02; + COFD[3648] = -1.80094534E+01; + COFD[3649] = 4.34871946E+00; + COFD[3650] = -3.50542624E-01; + COFD[3651] = 1.52355319E-02; + COFD[3652] = -1.60186516E+01; + COFD[3653] = 3.64795923E+00; + COFD[3654] = -2.61984156E-01; + COFD[3655] = 1.14893124E-02; + COFD[3656] = -1.80138725E+01; + COFD[3657] = 4.34871946E+00; + COFD[3658] = -3.50542624E-01; + COFD[3659] = 1.52355319E-02; + COFD[3660] = -1.80138725E+01; + COFD[3661] = 4.34871946E+00; + COFD[3662] = -3.50542624E-01; + COFD[3663] = 1.52355319E-02; + COFD[3664] = -1.94803915E+01; + COFD[3665] = 4.84702690E+00; + COFD[3666] = -4.10607260E-01; + COFD[3667] = 1.76533032E-02; + COFD[3668] = -1.47381710E+01; + COFD[3669] = 3.14480429E+00; + COFD[3670] = -1.97906290E-01; + COFD[3671] = 8.76325718E-03; + COFD[3672] = -1.47381710E+01; + COFD[3673] = 3.14480429E+00; + COFD[3674] = -1.97906290E-01; + COFD[3675] = 8.76325718E-03; + COFD[3676] = -1.60343999E+01; + COFD[3677] = 3.64795923E+00; + COFD[3678] = -2.61984156E-01; + COFD[3679] = 1.14893124E-02; + COFD[3680] = -1.60267117E+01; + COFD[3681] = 3.64795923E+00; + COFD[3682] = -2.61984156E-01; + COFD[3683] = 1.14893124E-02; + COFD[3684] = -2.05684585E+01; + COFD[3685] = 5.37634919E+00; + COFD[3686] = -4.70693222E-01; + COFD[3687] = 1.99144603E-02; + COFD[3688] = -1.82199600E+01; + COFD[3689] = 4.38314454E+00; + COFD[3690] = -3.54844523E-01; + COFD[3691] = 1.54154407E-02; + COFD[3692] = -1.43640965E+01; + COFD[3693] = 3.14480429E+00; + COFD[3694] = -1.97906290E-01; + COFD[3695] = 8.76325718E-03; + COFD[3696] = -1.94776600E+01; + COFD[3697] = 4.84702690E+00; + COFD[3698] = -4.10607260E-01; + COFD[3699] = 1.76533032E-02; + COFD[3700] = -1.44582517E+01; + COFD[3701] = 3.24450689E+00; + COFD[3702] = -2.10570734E-01; + COFD[3703] = 9.30026771E-03; + COFD[3704] = -1.47292885E+01; + COFD[3705] = 3.14480429E+00; + COFD[3706] = -1.97906290E-01; + COFD[3707] = 8.76325718E-03; + COFD[3708] = -1.44801377E+01; + COFD[3709] = 3.24450689E+00; + COFD[3710] = -2.10570734E-01; + COFD[3711] = 9.30026771E-03; + COFD[3712] = -1.60267117E+01; + COFD[3713] = 3.64795923E+00; + COFD[3714] = -2.61984156E-01; + COFD[3715] = 1.14893124E-02; + COFD[3716] = -1.80304320E+01; + COFD[3717] = 4.34871946E+00; + COFD[3718] = -3.50542624E-01; + COFD[3719] = 1.52355319E-02; + COFD[3720] = -1.85871947E+01; + COFD[3721] = 4.54507313E+00; + COFD[3722] = -3.74508073E-01; + COFD[3723] = 1.62126770E-02; + COFD[3724] = -1.74527205E+01; + COFD[3725] = 4.14166966E+00; + COFD[3726] = -3.25149462E-01; + COFD[3727] = 1.41943811E-02; + COFD[3728] = -1.07408702E+01; + COFD[3729] = 1.97633987E+00; + COFD[3730] = -4.13330837E-02; + COFD[3731] = 1.75258621E-03; + COFD[3732] = -1.33020050E+01; + COFD[3733] = 3.04970299E+00; + COFD[3734] = -1.85555523E-01; + COFD[3735] = 8.22773480E-03; + COFD[3736] = -1.70075237E+01; + COFD[3737] = 4.63687143E+00; + COFD[3738] = -3.85900861E-01; + COFD[3739] = 1.66856798E-02; + COFD[3740] = -1.77552699E+01; + COFD[3741] = 4.25438185E+00; + COFD[3742] = -3.39084808E-01; + COFD[3743] = 1.47709916E-02; + COFD[3744] = -1.63426470E+01; + COFD[3745] = 3.88250968E+00; + COFD[3746] = -2.92155848E-01; + COFD[3747] = 1.27867850E-02; + COFD[3748] = -2.15175497E+01; + COFD[3749] = 5.49993732E+00; + COFD[3750] = -4.62042917E-01; + COFD[3751] = 1.85577413E-02; + COFD[3752] = -1.63625946E+01; + COFD[3753] = 3.88250968E+00; + COFD[3754] = -2.92155848E-01; + COFD[3755] = 1.27867850E-02; + COFD[3756] = -1.77700789E+01; + COFD[3757] = 4.25438185E+00; + COFD[3758] = -3.39084808E-01; + COFD[3759] = 1.47709916E-02; + COFD[3760] = -1.77628457E+01; + COFD[3761] = 4.25438185E+00; + COFD[3762] = -3.39084808E-01; + COFD[3763] = 1.47709916E-02; + COFD[3764] = -1.74695868E+01; + COFD[3765] = 4.14135251E+00; + COFD[3766] = -3.25110732E-01; + COFD[3767] = 1.41927996E-02; + COFD[3768] = -2.05721233E+01; + COFD[3769] = 5.17526774E+00; + COFD[3770] = -4.48472252E-01; + COFD[3771] = 1.91050891E-02; + COFD[3772] = -2.00475034E+01; + COFD[3773] = 5.03042083E+00; + COFD[3774] = -4.32596342E-01; + COFD[3775] = 1.85345510E-02; + COFD[3776] = -1.80224967E+01; + COFD[3777] = 4.34871946E+00; + COFD[3778] = -3.50542624E-01; + COFD[3779] = 1.52355319E-02; + COFD[3780] = -2.00518410E+01; + COFD[3781] = 5.03042083E+00; + COFD[3782] = -4.32596342E-01; + COFD[3783] = 1.85345510E-02; + COFD[3784] = -2.00518410E+01; + COFD[3785] = 5.03042083E+00; + COFD[3786] = -4.32596342E-01; + COFD[3787] = 1.85345510E-02; + COFD[3788] = -2.12952306E+01; + COFD[3789] = 5.40830928E+00; + COFD[3790] = -4.72988519E-01; + COFD[3791] = 1.99395140E-02; + COFD[3792] = -1.63029340E+01; + COFD[3793] = 3.68407693E+00; + COFD[3794] = -2.66228170E-01; + COFD[3795] = 1.16542305E-02; + COFD[3796] = -1.63029340E+01; + COFD[3797] = 3.68407693E+00; + COFD[3798] = -2.66228170E-01; + COFD[3799] = 1.16542305E-02; + COFD[3800] = -1.80379994E+01; + COFD[3801] = 4.34871946E+00; + COFD[3802] = -3.50542624E-01; + COFD[3803] = 1.52355319E-02; + COFD[3804] = -1.80304320E+01; + COFD[3805] = 4.34871946E+00; + COFD[3806] = -3.50542624E-01; + COFD[3807] = 1.52355319E-02; + COFD[3808] = -2.16335876E+01; + COFD[3809] = 5.58518186E+00; + COFD[3810] = -4.80813479E-01; + COFD[3811] = 1.96787936E-02; + COFD[3812] = -2.02435759E+01; + COFD[3813] = 5.06106939E+00; + COFD[3814] = -4.36210404E-01; + COFD[3815] = 1.86769307E-02; + COFD[3816] = -1.59394625E+01; + COFD[3817] = 3.68407693E+00; + COFD[3818] = -2.66228170E-01; + COFD[3819] = 1.16542305E-02; + COFD[3820] = -2.12925553E+01; + COFD[3821] = 5.40830928E+00; + COFD[3822] = -4.72988519E-01; + COFD[3823] = 1.99395140E-02; + COFD[3824] = -1.62911759E+01; + COFD[3825] = 3.88250968E+00; + COFD[3826] = -2.92155848E-01; + COFD[3827] = 1.27867850E-02; + COFD[3828] = -1.62941846E+01; + COFD[3829] = 3.68407693E+00; + COFD[3830] = -2.66228170E-01; + COFD[3831] = 1.16542305E-02; + COFD[3832] = -1.63128378E+01; + COFD[3833] = 3.88250968E+00; + COFD[3834] = -2.92155848E-01; + COFD[3835] = 1.27867850E-02; + COFD[3836] = -1.80304320E+01; + COFD[3837] = 4.34871946E+00; + COFD[3838] = -3.50542624E-01; + COFD[3839] = 1.52355319E-02; + COFD[3840] = -2.00640240E+01; + COFD[3841] = 5.03042083E+00; + COFD[3842] = -4.32596342E-01; + COFD[3843] = 1.85345510E-02; +} + +// List of specs with small weight, dim NLITE +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +egtransetKTDIF(int* KTDIF) +{ + KTDIF[0] = 2; + KTDIF[1] = 3; + KTDIF[2] = 4; +} + +// Poly fits for thermal diff ratios, dim NO*NLITE*KK +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +egtransetCOFTD(amrex::Real* COFTD) +{ + COFTD[0] = 4.70924723E-01; + COFTD[1] = -6.88283609E-05; + COFTD[2] = 5.60462741E-08; + COFTD[3] = -1.11246472E-11; + COFTD[4] = 4.30771933E-01; + COFTD[5] = -6.67846028E-05; + COFTD[6] = 6.30507068E-08; + COFTD[7] = -1.43914288E-11; + COFTD[8] = 0.00000000E+00; + COFTD[9] = 0.00000000E+00; + COFTD[10] = 0.00000000E+00; + COFTD[11] = 0.00000000E+00; + COFTD[12] = -1.68347364E-01; + COFTD[13] = -2.74182065E-05; + COFTD[14] = 1.39447838E-09; + COFTD[15] = 5.20048555E-12; + COFTD[16] = -3.43407234E-01; + COFTD[17] = 4.76249766E-05; + COFTD[18] = -3.80401358E-08; + COFTD[19] = 7.36556741E-12; + COFTD[20] = 4.48041209E-01; + COFTD[21] = -7.08980893E-05; + COFTD[22] = 6.35658885E-08; + COFTD[23] = -1.38980652E-11; + COFTD[24] = 3.40381953E-01; + COFTD[25] = -4.53458548E-05; + COFTD[26] = 4.97555228E-08; + COFTD[27] = -1.26424120E-11; + COFTD[28] = 2.68168558E-01; + COFTD[29] = 1.66269239E-04; + COFTD[30] = -1.01028373E-07; + COFTD[31] = 1.87018711E-11; + COFTD[32] = 3.51279551E-01; + COFTD[33] = -4.67976382E-05; + COFTD[34] = 5.13484852E-08; + COFTD[35] = -1.30471688E-11; + COFTD[36] = 4.54835137E-01; + COFTD[37] = -7.19731613E-05; + COFTD[38] = 6.45297777E-08; + COFTD[39] = -1.41088102E-11; + COFTD[40] = 4.51530695E-01; + COFTD[41] = -7.14502661E-05; + COFTD[42] = 6.40609598E-08; + COFTD[43] = -1.40063077E-11; + COFTD[44] = 4.39178391E-01; + COFTD[45] = -6.80800676E-05; + COFTD[46] = 6.42854133E-08; + COFTD[47] = -1.46753732E-11; + COFTD[48] = 4.57541213E-01; + COFTD[49] = -8.20214061E-06; + COFTD[50] = 6.16436553E-09; + COFTD[51] = -8.63464903E-14; + COFTD[52] = 4.70645338E-01; + COFTD[53] = -3.23466901E-05; + COFTD[54] = 2.39213212E-08; + COFTD[55] = -3.67292811E-12; + COFTD[56] = 4.44948718E-01; + COFTD[57] = -6.99708958E-05; + COFTD[58] = 6.04184331E-08; + COFTD[59] = -1.27637771E-11; + COFTD[60] = 4.72417689E-01; + COFTD[61] = -3.24685009E-05; + COFTD[62] = 2.40114038E-08; + COFTD[63] = -3.68675958E-12; + COFTD[64] = 4.72417689E-01; + COFTD[65] = -3.24685009E-05; + COFTD[66] = 2.40114038E-08; + COFTD[67] = -3.68675958E-12; + COFTD[68] = 4.60675636E-01; + COFTD[69] = 4.51852507E-05; + COFTD[70] = -2.99127451E-08; + COFTD[71] = 6.83597247E-12; + COFTD[72] = 4.29601389E-01; + COFTD[73] = -4.76673458E-05; + COFTD[74] = 6.00255928E-08; + COFTD[75] = -1.65325750E-11; + COFTD[76] = 4.29601389E-01; + COFTD[77] = -4.76673458E-05; + COFTD[78] = 6.00255928E-08; + COFTD[79] = -1.65325750E-11; + COFTD[80] = 4.52127349E-01; + COFTD[81] = -7.10997792E-05; + COFTD[82] = 6.13932007E-08; + COFTD[83] = -1.29697029E-11; + COFTD[84] = 4.48638466E-01; + COFTD[85] = -7.05511311E-05; + COFTD[86] = 6.09194543E-08; + COFTD[87] = -1.28696210E-11; + COFTD[88] = 2.80952795E-01; + COFTD[89] = 1.22984102E-04; + COFTD[90] = -7.64363722E-08; + COFTD[91] = 1.45491940E-11; + COFTD[92] = 4.34628370E-01; + COFTD[93] = -2.65987580E-05; + COFTD[94] = 1.96029410E-08; + COFTD[95] = -2.87229130E-12; + COFTD[96] = 3.12044781E-01; + COFTD[97] = -3.46235996E-05; + COFTD[98] = 4.36001220E-08; + COFTD[99] = -1.20085825E-11; + COFTD[100] = 4.59721260E-01; + COFTD[101] = 4.50916409E-05; + COFTD[102] = -2.98507753E-08; + COFTD[103] = 6.82181047E-12; + COFTD[104] = 3.28629530E-01; + COFTD[105] = -4.37801911E-05; + COFTD[106] = 4.80376058E-08; + COFTD[107] = -1.22059054E-11; + COFTD[108] = 4.25568370E-01; + COFTD[109] = -4.72198535E-05; + COFTD[110] = 5.94620835E-08; + COFTD[111] = -1.63773702E-11; + COFTD[112] = 3.40654169E-01; + COFTD[113] = -4.53821195E-05; + COFTD[114] = 4.97953141E-08; + COFTD[115] = -1.26525226E-11; + COFTD[116] = 4.48638466E-01; + COFTD[117] = -7.05511311E-05; + COFTD[118] = 6.09194543E-08; + COFTD[119] = -1.28696210E-11; + COFTD[120] = 4.32331534E-01; + COFTD[121] = -2.97134445E-05; + COFTD[122] = 2.19739592E-08; + COFTD[123] = -3.37392621E-12; + COFTD[124] = 4.01013632E-01; + COFTD[125] = 1.97253232E-04; + COFTD[126] = -1.21698396E-07; + COFTD[127] = 2.29409318E-11; + COFTD[128] = 4.31330748E-01; + COFTD[129] = 9.20535689E-05; + COFTD[130] = -5.94508898E-08; + COFTD[131] = 1.21437846E-11; + COFTD[132] = 1.68347364E-01; + COFTD[133] = 2.74182065E-05; + COFTD[134] = -1.39447838E-09; + COFTD[135] = -5.20048555E-12; + COFTD[136] = 0.00000000E+00; + COFTD[137] = 0.00000000E+00; + COFTD[138] = 0.00000000E+00; + COFTD[139] = 0.00000000E+00; + COFTD[140] = -1.44152190E-01; + COFTD[141] = -7.99993584E-05; + COFTD[142] = 4.89707442E-08; + COFTD[143] = -9.14277269E-12; + COFTD[144] = 4.26576987E-01; + COFTD[145] = 1.20406440E-04; + COFTD[146] = -7.67293441E-08; + COFTD[147] = 1.52089282E-11; + COFTD[148] = 4.06676789E-01; + COFTD[149] = 3.84699853E-05; + COFTD[150] = -2.54843294E-08; + COFTD[151] = 5.86294132E-12; + COFTD[152] = 2.27466103E-02; + COFTD[153] = 6.73071543E-04; + COFTD[154] = -3.40932103E-07; + COFTD[155] = 5.48493184E-11; + COFTD[156] = 4.12890501E-01; + COFTD[157] = 3.90577773E-05; + COFTD[158] = -2.58737105E-08; + COFTD[159] = 5.95252260E-12; + COFTD[160] = 4.29786829E-01; + COFTD[161] = 1.21312456E-04; + COFTD[162] = -7.73067054E-08; + COFTD[163] = 1.53233700E-11; + COFTD[164] = 4.28228101E-01; + COFTD[165] = 1.20872486E-04; + COFTD[166] = -7.70263335E-08; + COFTD[167] = 1.52677960E-11; + COFTD[168] = 4.35530319E-01; + COFTD[169] = 9.28595255E-05; + COFTD[170] = -5.99739561E-08; + COFTD[171] = 1.22519981E-11; + COFTD[172] = 3.03583159E-01; + COFTD[173] = 3.83873415E-04; + COFTD[174] = -2.21858385E-07; + COFTD[175] = 3.91460261E-11; + COFTD[176] = 3.35876848E-01; + COFTD[177] = 3.31390958E-04; + COFTD[178] = -1.94934498E-07; + COFTD[179] = 3.49299774E-11; + COFTD[180] = 4.13276369E-01; + COFTD[181] = 1.43904192E-04; + COFTD[182] = -9.06635924E-08; + COFTD[183] = 1.76105046E-11; + COFTD[184] = 3.36509790E-01; + COFTD[185] = 3.32015447E-04; + COFTD[186] = -1.95301842E-07; + COFTD[187] = 3.49958011E-11; + COFTD[188] = 3.36509790E-01; + COFTD[189] = 3.32015447E-04; + COFTD[190] = -1.95301842E-07; + COFTD[191] = 3.49958011E-11; + COFTD[192] = 2.54435700E-01; + COFTD[193] = 4.89143294E-04; + COFTD[194] = -2.74624434E-07; + COFTD[195] = 4.73524211E-11; + COFTD[196] = 4.68942192E-01; + COFTD[197] = 1.80545885E-05; + COFTD[198] = -1.19735977E-08; + COFTD[199] = 3.47453353E-12; + COFTD[200] = 4.68942192E-01; + COFTD[201] = 1.80545885E-05; + COFTD[202] = -1.19735977E-08; + COFTD[203] = 3.47453353E-12; + COFTD[204] = 4.16581929E-01; + COFTD[205] = 1.45055200E-04; + COFTD[206] = -9.13887584E-08; + COFTD[207] = 1.77513609E-11; + COFTD[208] = 4.14978094E-01; + COFTD[209] = 1.44496739E-04; + COFTD[210] = -9.10369129E-08; + COFTD[211] = 1.76830184E-11; + COFTD[212] = 8.77463577E-02; + COFTD[213] = 5.89527972E-04; + COFTD[214] = -3.09359095E-07; + COFTD[215] = 5.08969594E-11; + COFTD[216] = 3.18453173E-01; + COFTD[217] = 3.27442779E-04; + COFTD[218] = -1.92047098E-07; + COFTD[219] = 3.43212289E-11; + COFTD[220] = 4.01448263E-01; + COFTD[221] = 1.54560270E-05; + COFTD[222] = -1.02502613E-08; + COFTD[223] = 2.97445074E-12; + COFTD[224] = 2.54170885E-01; + COFTD[225] = 4.88634198E-04; + COFTD[226] = -2.74338607E-07; + COFTD[227] = 4.73031371E-11; + COFTD[228] = 3.99901552E-01; + COFTD[229] = 3.78290751E-05; + COFTD[230] = -2.50597604E-08; + COFTD[231] = 5.76526469E-12; + COFTD[232] = 4.66750237E-01; + COFTD[233] = 1.79701968E-05; + COFTD[234] = -1.19176301E-08; + COFTD[235] = 3.45829268E-12; + COFTD[236] = 4.06832805E-01; + COFTD[237] = 3.84847437E-05; + COFTD[238] = -2.54941061E-08; + COFTD[239] = 5.86519055E-12; + COFTD[240] = 4.14978094E-01; + COFTD[241] = 1.44496739E-04; + COFTD[242] = -9.10369129E-08; + COFTD[243] = 1.76830184E-11; + COFTD[244] = 3.21936705E-01; + COFTD[245] = 3.17636996E-04; + COFTD[246] = -1.86843988E-07; + COFTD[247] = 3.34802529E-11; + COFTD[248] = 1.22194046E-01; + COFTD[249] = 6.90321836E-04; + COFTD[250] = -3.64845249E-07; + COFTD[251] = 6.03055495E-11; + COFTD[252] = 2.01521521E-01; + COFTD[253] = 5.62743751E-04; + COFTD[254] = -3.08519054E-07; + COFTD[255] = 5.22805672E-11; + COFTD[256] = 3.43407234E-01; + COFTD[257] = -4.76249766E-05; + COFTD[258] = 3.80401358E-08; + COFTD[259] = -7.36556741E-12; + COFTD[260] = 1.44152190E-01; + COFTD[261] = 7.99993584E-05; + COFTD[262] = -4.89707442E-08; + COFTD[263] = 9.14277269E-12; + COFTD[264] = 0.00000000E+00; + COFTD[265] = 0.00000000E+00; + COFTD[266] = 0.00000000E+00; + COFTD[267] = 0.00000000E+00; + COFTD[268] = 1.79839678E-01; + COFTD[269] = 6.01720824E-04; + COFTD[270] = -3.26432767E-07; + COFTD[271] = 5.49110406E-11; + COFTD[272] = 2.35281489E-01; + COFTD[273] = 4.65667373E-04; + COFTD[274] = -2.60938016E-07; + COFTD[275] = 4.49268709E-11; + COFTD[276] = -1.74351746E-01; + COFTD[277] = 8.62242165E-04; + COFTD[278] = -3.79543417E-07; + COFTD[279] = 5.60259034E-11; + COFTD[280] = 2.37051899E-01; + COFTD[281] = 4.69171356E-04; + COFTD[282] = -2.62901483E-07; + COFTD[283] = 4.52649298E-11; + COFTD[284] = 1.80513126E-01; + COFTD[285] = 6.03974096E-04; + COFTD[286] = -3.27655164E-07; + COFTD[287] = 5.51166667E-11; + COFTD[288] = 1.80186380E-01; + COFTD[289] = 6.02880848E-04; + COFTD[290] = -3.27062078E-07; + COFTD[291] = 5.50169005E-11; + COFTD[292] = 2.02562008E-01; + COFTD[293] = 5.65332922E-04; + COFTD[294] = -3.09948981E-07; + COFTD[295] = 5.25241285E-11; + COFTD[296] = -8.57035282E-03; + COFTD[297] = 8.40083371E-04; + COFTD[298] = -4.18318603E-07; + COFTD[299] = 6.65929848E-11; + COFTD[300] = 2.76047505E-02; + COFTD[301] = 8.06199937E-04; + COFTD[302] = -4.08431546E-07; + COFTD[303] = 6.57152296E-11; + COFTD[304] = 1.59106390E-01; + COFTD[305] = 6.28945159E-04; + COFTD[306] = -3.38129723E-07; + COFTD[307] = 5.65283799E-11; + COFTD[308] = 2.76307114E-02; + COFTD[309] = 8.06958129E-04; + COFTD[310] = -4.08815656E-07; + COFTD[311] = 6.57770315E-11; + COFTD[312] = 2.76307114E-02; + COFTD[313] = 8.06958129E-04; + COFTD[314] = -4.08815656E-07; + COFTD[315] = 6.57770315E-11; + COFTD[316] = -6.77979788E-02; + COFTD[317] = 8.99890319E-04; + COFTD[318] = -4.34537138E-07; + COFTD[319] = 6.78908349E-11; + COFTD[320] = 2.75785466E-01; + COFTD[321] = 4.52150560E-04; + COFTD[322] = -2.56613757E-07; + COFTD[323] = 4.46163923E-11; + COFTD[324] = 2.75785466E-01; + COFTD[325] = 4.52150560E-04; + COFTD[326] = -2.56613757E-07; + COFTD[327] = 4.46163923E-11; + COFTD[328] = 1.59739525E-01; + COFTD[329] = 6.31447933E-04; + COFTD[330] = -3.39475249E-07; + COFTD[331] = 5.67533244E-11; + COFTD[332] = 1.59432618E-01; + COFTD[333] = 6.30234735E-04; + COFTD[334] = -3.38823017E-07; + COFTD[335] = 5.66442846E-11; + COFTD[336] = -1.47923388E-01; + COFTD[337] = 8.60599598E-04; + COFTD[338] = -3.89552626E-07; + COFTD[339] = 5.85120164E-11; + COFTD[340] = 2.11713585E-02; + COFTD[341] = 7.97030059E-04; + COFTD[342] = -4.02655072E-07; + COFTD[343] = 6.46731083E-11; + COFTD[344] = 2.55342069E-01; + COFTD[345] = 4.18633590E-04; + COFTD[346] = -2.37591519E-07; + COFTD[347] = 4.13090729E-11; + COFTD[348] = -6.77627153E-02; + COFTD[349] = 8.99422263E-04; + COFTD[350] = -4.34311124E-07; + COFTD[351] = 6.78555231E-11; + COFTD[352] = 2.33338372E-01; + COFTD[353] = 4.61821570E-04; + COFTD[354] = -2.58783010E-07; + COFTD[355] = 4.45558338E-11; + COFTD[356] = 2.75142423E-01; + COFTD[357] = 4.51096291E-04; + COFTD[358] = -2.56015417E-07; + COFTD[359] = 4.45123613E-11; + COFTD[360] = 2.35326077E-01; + COFTD[361] = 4.65755621E-04; + COFTD[362] = -2.60987466E-07; + COFTD[363] = 4.49353850E-11; + COFTD[364] = 1.59432618E-01; + COFTD[365] = 6.30234735E-04; + COFTD[366] = -3.38823017E-07; + COFTD[367] = 5.66442846E-11; + COFTD[368] = 2.70271178E-02; + COFTD[369] = 7.89330109E-04; + COFTD[370] = -3.99885068E-07; + COFTD[371] = 6.43401307E-11; +} + +// compute the critical parameters for each species +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +GET_CRITPARAMS( + amrex::Real* Tci, amrex::Real* ai, amrex::Real* bi, amrex::Real* acentric_i) +{ + + amrex::Real EPS[31]; + amrex::Real SIG[31]; + amrex::Real wt[31]; + amrex::Real Rcst = 83.144598; // in bar [CGS] ! + amrex::Real avogadro = 6.02214199e23; + amrex::Real boltzmann = 1.3806503e-16; // we work in CGS + + egtransetEPS(EPS); + egtransetSIG(SIG); + get_mw(wt); + + // species 0: AR + // Imported from NIST + Tci[0] = 150.860000; + ai[0] = 1e6 * 0.42748 * Rcst * Rcst * Tci[0] * Tci[0] / + (39.948000 * 39.948000 * 48.980000); + bi[0] = 0.08664 * Rcst * Tci[0] / (39.948000 * 48.980000); + acentric_i[0] = -0.002000; + + // species 1: N2 + // Imported from NIST + Tci[1] = 126.192000; + ai[1] = 1e6 * 0.42748 * Rcst * Rcst * Tci[1] * Tci[1] / + (28.013400 * 28.013400 * 33.958000); + bi[1] = 0.08664 * Rcst * Tci[1] / (28.013400 * 33.958000); + acentric_i[1] = 0.037200; + + // species 2: HE + Tci[2] = 1.316 * EPS[2]; + ai[2] = (5.55 * avogadro * avogadro * EPS[2] * boltzmann * 1e-24 * SIG[2] * + SIG[2] * SIG[2]) / + (wt[2] * wt[2]); + bi[2] = 0.855 * avogadro * 1e-24 * SIG[2] * SIG[2] * SIG[2] / (wt[2]); + acentric_i[2] = 0.0; + + // species 3: H2 + // Imported from NIST + Tci[3] = 33.145000; + ai[3] = 1e6 * 0.42748 * Rcst * Rcst * Tci[3] * Tci[3] / + (2.015880 * 2.015880 * 12.964000); + bi[3] = 0.08664 * Rcst * Tci[3] / (2.015880 * 12.964000); + acentric_i[3] = -0.219000; + + // species 4: H + Tci[4] = 1.316 * EPS[4]; + ai[4] = (5.55 * avogadro * avogadro * EPS[4] * boltzmann * 1e-24 * SIG[4] * + SIG[4] * SIG[4]) / + (wt[4] * wt[4]); + bi[4] = 0.855 * avogadro * 1e-24 * SIG[4] * SIG[4] * SIG[4] / (wt[4]); + acentric_i[4] = 0.0; + + // species 5: O2 + // Imported from NIST + Tci[5] = 154.581000; + ai[5] = 1e6 * 0.42748 * Rcst * Rcst * Tci[5] * Tci[5] / + (31.998800 * 31.998800 * 50.430466); + bi[5] = 0.08664 * Rcst * Tci[5] / (31.998800 * 50.430466); + acentric_i[5] = 0.022200; + + // species 6: O + Tci[6] = 1.316 * EPS[6]; + ai[6] = (5.55 * avogadro * avogadro * EPS[6] * boltzmann * 1e-24 * SIG[6] * + SIG[6] * SIG[6]) / + (wt[6] * wt[6]); + bi[6] = 0.855 * avogadro * 1e-24 * SIG[6] * SIG[6] * SIG[6] / (wt[6]); + acentric_i[6] = 0.0; + + // species 7: H2O + // Imported from NIST + Tci[7] = 647.096000; + ai[7] = 1e6 * 0.42748 * Rcst * Rcst * Tci[7] * Tci[7] / + (18.015340 * 18.015340 * 220.640000); + bi[7] = 0.08664 * Rcst * Tci[7] / (18.015340 * 220.640000); + acentric_i[7] = 0.344300; + + // species 8: OH + Tci[8] = 1.316 * EPS[8]; + ai[8] = (5.55 * avogadro * avogadro * EPS[8] * boltzmann * 1e-24 * SIG[8] * + SIG[8] * SIG[8]) / + (wt[8] * wt[8]); + bi[8] = 0.855 * avogadro * 1e-24 * SIG[8] * SIG[8] * SIG[8] / (wt[8]); + acentric_i[8] = 0.0; + + // species 9: H2O2 + Tci[9] = 1.316 * EPS[9]; + ai[9] = (5.55 * avogadro * avogadro * EPS[9] * boltzmann * 1e-24 * SIG[9] * + SIG[9] * SIG[9]) / + (wt[9] * wt[9]); + bi[9] = 0.855 * avogadro * 1e-24 * SIG[9] * SIG[9] * SIG[9] / (wt[9]); + acentric_i[9] = 0.0; + + // species 10: HO2 + Tci[10] = 1.316 * EPS[10]; + ai[10] = (5.55 * avogadro * avogadro * EPS[10] * boltzmann * 1e-24 * SIG[10] * + SIG[10] * SIG[10]) / + (wt[10] * wt[10]); + bi[10] = 0.855 * avogadro * 1e-24 * SIG[10] * SIG[10] * SIG[10] / (wt[10]); + acentric_i[10] = 0.0; + + // species 11: NO + // Imported from NIST + Tci[11] = 180.000000; + ai[11] = 1e6 * 0.42748 * Rcst * Rcst * Tci[11] * Tci[11] / + (30.006000 * 30.006000 * 64.800000); + bi[11] = 0.08664 * Rcst * Tci[11] / (30.006000 * 64.800000); + acentric_i[11] = 0.582000; + + // species 12: N2O + // Imported from NIST + Tci[12] = 309.600000; + ai[12] = 1e6 * 0.42748 * Rcst * Rcst * Tci[12] * Tci[12] / + (44.013000 * 44.013000 * 72.550000); + bi[12] = 0.08664 * Rcst * Tci[12] / (44.013000 * 72.550000); + acentric_i[12] = 0.162000; + + // species 13: NO2 + Tci[13] = 1.316 * EPS[13]; + ai[13] = (5.55 * avogadro * avogadro * EPS[13] * boltzmann * 1e-24 * SIG[13] * + SIG[13] * SIG[13]) / + (wt[13] * wt[13]); + bi[13] = 0.855 * avogadro * 1e-24 * SIG[13] * SIG[13] * SIG[13] / (wt[13]); + acentric_i[13] = 0.0; + + // species 14: HNO + Tci[14] = 1.316 * EPS[14]; + ai[14] = (5.55 * avogadro * avogadro * EPS[14] * boltzmann * 1e-24 * SIG[14] * + SIG[14] * SIG[14]) / + (wt[14] * wt[14]); + bi[14] = 0.855 * avogadro * 1e-24 * SIG[14] * SIG[14] * SIG[14] / (wt[14]); + acentric_i[14] = 0.0; + + // species 15: HNO2 + Tci[15] = 1.316 * EPS[15]; + ai[15] = (5.55 * avogadro * avogadro * EPS[15] * boltzmann * 1e-24 * SIG[15] * + SIG[15] * SIG[15]) / + (wt[15] * wt[15]); + bi[15] = 0.855 * avogadro * 1e-24 * SIG[15] * SIG[15] * SIG[15] / (wt[15]); + acentric_i[15] = 0.0; + + // species 16: HONO + Tci[16] = 1.316 * EPS[16]; + ai[16] = (5.55 * avogadro * avogadro * EPS[16] * boltzmann * 1e-24 * SIG[16] * + SIG[16] * SIG[16]) / + (wt[16] * wt[16]); + bi[16] = 0.855 * avogadro * 1e-24 * SIG[16] * SIG[16] * SIG[16] / (wt[16]); + acentric_i[16] = 0.0; + + // species 17: HONO2 + Tci[17] = 1.316 * EPS[17]; + ai[17] = (5.55 * avogadro * avogadro * EPS[17] * boltzmann * 1e-24 * SIG[17] * + SIG[17] * SIG[17]) / + (wt[17] * wt[17]); + bi[17] = 0.855 * avogadro * 1e-24 * SIG[17] * SIG[17] * SIG[17] / (wt[17]); + acentric_i[17] = 0.0; + + // species 18: N2H2 + Tci[18] = 1.316 * EPS[18]; + ai[18] = (5.55 * avogadro * avogadro * EPS[18] * boltzmann * 1e-24 * SIG[18] * + SIG[18] * SIG[18]) / + (wt[18] * wt[18]); + bi[18] = 0.855 * avogadro * 1e-24 * SIG[18] * SIG[18] * SIG[18] / (wt[18]); + acentric_i[18] = 0.0; + + // species 19: H2NN + Tci[19] = 1.316 * EPS[19]; + ai[19] = (5.55 * avogadro * avogadro * EPS[19] * boltzmann * 1e-24 * SIG[19] * + SIG[19] * SIG[19]) / + (wt[19] * wt[19]); + bi[19] = 0.855 * avogadro * 1e-24 * SIG[19] * SIG[19] * SIG[19] / (wt[19]); + acentric_i[19] = 0.0; + + // species 20: NH2OH + Tci[20] = 1.316 * EPS[20]; + ai[20] = (5.55 * avogadro * avogadro * EPS[20] * boltzmann * 1e-24 * SIG[20] * + SIG[20] * SIG[20]) / + (wt[20] * wt[20]); + bi[20] = 0.855 * avogadro * 1e-24 * SIG[20] * SIG[20] * SIG[20] / (wt[20]); + acentric_i[20] = 0.0; + + // species 21: HNOH + Tci[21] = 1.316 * EPS[21]; + ai[21] = (5.55 * avogadro * avogadro * EPS[21] * boltzmann * 1e-24 * SIG[21] * + SIG[21] * SIG[21]) / + (wt[21] * wt[21]); + bi[21] = 0.855 * avogadro * 1e-24 * SIG[21] * SIG[21] * SIG[21] / (wt[21]); + acentric_i[21] = 0.0; + + // species 22: NH3 + Tci[22] = 1.316 * EPS[22]; + ai[22] = (5.55 * avogadro * avogadro * EPS[22] * boltzmann * 1e-24 * SIG[22] * + SIG[22] * SIG[22]) / + (wt[22] * wt[22]); + bi[22] = 0.855 * avogadro * 1e-24 * SIG[22] * SIG[22] * SIG[22] / (wt[22]); + acentric_i[22] = 0.0; + + // species 23: N2H4 + Tci[23] = 1.316 * EPS[23]; + ai[23] = (5.55 * avogadro * avogadro * EPS[23] * boltzmann * 1e-24 * SIG[23] * + SIG[23] * SIG[23]) / + (wt[23] * wt[23]); + bi[23] = 0.855 * avogadro * 1e-24 * SIG[23] * SIG[23] * SIG[23] / (wt[23]); + acentric_i[23] = 0.0; + + // species 24: N + Tci[24] = 1.316 * EPS[24]; + ai[24] = (5.55 * avogadro * avogadro * EPS[24] * boltzmann * 1e-24 * SIG[24] * + SIG[24] * SIG[24]) / + (wt[24] * wt[24]); + bi[24] = 0.855 * avogadro * 1e-24 * SIG[24] * SIG[24] * SIG[24] / (wt[24]); + acentric_i[24] = 0.0; + + // species 25: NO3 + Tci[25] = 1.316 * EPS[25]; + ai[25] = (5.55 * avogadro * avogadro * EPS[25] * boltzmann * 1e-24 * SIG[25] * + SIG[25] * SIG[25]) / + (wt[25] * wt[25]); + bi[25] = 0.855 * avogadro * 1e-24 * SIG[25] * SIG[25] * SIG[25] / (wt[25]); + acentric_i[25] = 0.0; + + // species 26: NH + Tci[26] = 1.316 * EPS[26]; + ai[26] = (5.55 * avogadro * avogadro * EPS[26] * boltzmann * 1e-24 * SIG[26] * + SIG[26] * SIG[26]) / + (wt[26] * wt[26]); + bi[26] = 0.855 * avogadro * 1e-24 * SIG[26] * SIG[26] * SIG[26] / (wt[26]); + acentric_i[26] = 0.0; + + // species 27: NNH + Tci[27] = 1.316 * EPS[27]; + ai[27] = (5.55 * avogadro * avogadro * EPS[27] * boltzmann * 1e-24 * SIG[27] * + SIG[27] * SIG[27]) / + (wt[27] * wt[27]); + bi[27] = 0.855 * avogadro * 1e-24 * SIG[27] * SIG[27] * SIG[27] / (wt[27]); + acentric_i[27] = 0.0; + + // species 28: NH2 + Tci[28] = 1.316 * EPS[28]; + ai[28] = (5.55 * avogadro * avogadro * EPS[28] * boltzmann * 1e-24 * SIG[28] * + SIG[28] * SIG[28]) / + (wt[28] * wt[28]); + bi[28] = 0.855 * avogadro * 1e-24 * SIG[28] * SIG[28] * SIG[28] / (wt[28]); + acentric_i[28] = 0.0; + + // species 29: H2NO + Tci[29] = 1.316 * EPS[29]; + ai[29] = (5.55 * avogadro * avogadro * EPS[29] * boltzmann * 1e-24 * SIG[29] * + SIG[29] * SIG[29]) / + (wt[29] * wt[29]); + bi[29] = 0.855 * avogadro * 1e-24 * SIG[29] * SIG[29] * SIG[29] / (wt[29]); + acentric_i[29] = 0.0; + + // species 30: N2H3 + Tci[30] = 1.316 * EPS[30]; + ai[30] = (5.55 * avogadro * avogadro * EPS[30] * boltzmann * 1e-24 * SIG[30] * + SIG[30] * SIG[30]) / + (wt[30] * wt[30]); + bi[30] = 0.855 * avogadro * 1e-24 * SIG[30] * SIG[30] * SIG[30] / (wt[30]); + acentric_i[30] = 0.0; +} + +// compute the critical parameter quantities for each species for SRK +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +GET_CRITPARAMS_SRK( + amrex::Real* sqrtOneOverTc, + amrex::Real* sqrtAsti, + amrex::Real* Bi, + amrex::Real* Fomega) +{ + + // species 0: AR + // Imported from NIST + sqrtOneOverTc[0] = 8.1416597423011e-02; + sqrtAsti[0] = 2.9333346340060e+04; + Bi[0] = 5.5540880812616e-01; + Fomega[0] = 4.8197599354800e-01; + + // species 1: N2 + // Imported from NIST + sqrtOneOverTc[1] = 8.9019282240563e-02; + sqrtAsti[1] = 4.2022983929562e+04; + Bi[1] = 9.5560052221563e-01; + Fomega[1] = 5.4259343186608e-01; + + // species 2: HE + // Computed from Lennard-Jones + sqrtOneOverTc[2] = 2.7294300551596e-01; + sqrtAsti[2] = 5.4994061413731e+04; + Bi[2] = 2.1989344021800e+00; + Fomega[2] = 4.8508000000000e-01; + + // species 3: H2 + // Imported from NIST + sqrtOneOverTc[3] = 1.7369646834812e-01; + sqrtAsti[3] = 2.4824229305911e+05; + Bi[3] = 9.1362254169923e+00; + Fomega[3] = 1.3798618890700e-01; + + // species 4: H + // Computed from Lennard-Jones + sqrtOneOverTc[4] = 7.2391579785311e-02; + sqrtAsti[4] = 5.8451221185793e+05; + Bi[4] = 4.4006634563410e+00; + Fomega[4] = 4.8508000000000e-01; + + // species 5: O2 + // Imported from NIST + sqrtOneOverTc[5] = 8.0430717653241e-02; + sqrtAsti[5] = 3.6980081924740e+04; + Bi[5] = 6.9005216444999e-01; + Fomega[5] = 5.1945301904908e-01; + + // species 6: O + // Computed from Lennard-Jones + sqrtOneOverTc[6] = 9.7460146948181e-02; + sqrtAsti[6] = 4.2500156012386e+04; + Bi[6] = 6.6930234851885e-01; + Fomega[6] = 4.8508000000000e-01; + + // species 7: H2O + // Imported from NIST + sqrtOneOverTc[7] = 3.9311140369715e-02; + sqrtAsti[7] = 1.3145468419592e+05; + Bi[7] = 1.1727204136223e+00; + Fomega[7] = 1.0013577274636e+00; + + // species 8: OH + // Computed from Lennard-Jones + sqrtOneOverTc[8] = 9.7460146948181e-02; + sqrtAsti[8] = 3.9981183985545e+04; + Bi[8] = 6.2963299076575e-01; + Fomega[8] = 4.8508000000000e-01; + + // species 9: H2O2 + // Computed from Lennard-Jones + sqrtOneOverTc[9] = 8.4114315417892e-02; + sqrtAsti[9] = 3.2660380884830e+04; + Bi[9] = 6.2594239211036e-01; + Fomega[9] = 4.8508000000000e-01; + + // species 10: HO2 + // Computed from Lennard-Jones + sqrtOneOverTc[10] = 8.4114315417892e-02; + sqrtAsti[10] = 3.3657825710980e+04; + Bi[10] = 6.4505861132042e-01; + Fomega[10] = 4.8508000000000e-01; + + // species 11: NO + // Imported from NIST + sqrtOneOverTc[11] = 7.4535599249993e-02; + sqrtAsti[11] = 4.0510614916903e+04; + Bi[11] = 6.6687106751983e-01; + Fomega[11] = 1.3368144381880e+00; + + // species 12: N2O + // Imported from NIST + sqrtOneOverTc[12] = 5.6832861622539e-02; + sqrtAsti[12] = 4.4894507333531e+04; + Bi[12] = 6.9844955486412e-01; + Fomega[12] = 7.3247646842800e-01; + + // species 13: NO2 + // Computed from Lennard-Jones + sqrtOneOverTc[13] = 6.1639209090192e-02; + sqrtAsti[13] = 3.3554545279404e+04; + Bi[13] = 4.7986182770822e-01; + Fomega[13] = 4.8508000000000e-01; + + // species 14: HNO + // Computed from Lennard-Jones + sqrtOneOverTc[14] = 8.0693142212399e-02; + sqrtAsti[14] = 3.7890324657121e+04; + Bi[14] = 7.0693914184172e-01; + Fomega[14] = 4.8508000000000e-01; + + // species 15: HNO2 + // Computed from Lennard-Jones + sqrtOneOverTc[15] = 6.1639209090192e-02; + sqrtAsti[15] = 3.2835106365877e+04; + Bi[15] = 4.6957316877708e-01; + Fomega[15] = 4.8508000000000e-01; + + // species 16: HONO + // Computed from Lennard-Jones + sqrtOneOverTc[16] = 6.1639209090192e-02; + sqrtAsti[16] = 3.2835106365877e+04; + Bi[16] = 4.6957316877708e-01; + Fomega[16] = 4.8508000000000e-01; + + // species 17: HONO2 + // Computed from Lennard-Jones + sqrtOneOverTc[17] = 5.0328203473231e-02; + sqrtAsti[17] = 3.0003972448998e+04; + Bi[17] = 3.5034665434706e-01; + Fomega[17] = 4.8508000000000e-01; + + // species 18: N2H2 + // Computed from Lennard-Jones + sqrtOneOverTc[18] = 1.0316275924140e-01; + sqrtAsti[18] = 3.4718866886354e+04; + Bi[18] = 9.3934830234373e-01; + Fomega[18] = 4.8508000000000e-01; + + // species 19: H2NN + // Computed from Lennard-Jones + sqrtOneOverTc[19] = 1.0316275924140e-01; + sqrtAsti[19] = 3.4718866886354e+04; + Bi[19] = 9.3934830234373e-01; + Fomega[19] = 4.8508000000000e-01; + + // species 20: NH2OH + // Computed from Lennard-Jones + sqrtOneOverTc[20] = 8.0693142212399e-02; + sqrtAsti[20] = 3.5577672688948e+04; + Bi[20] = 6.6379081274838e-01; + Fomega[20] = 4.8508000000000e-01; + + // species 21: HNOH + // Computed from Lennard-Jones + sqrtOneOverTc[21] = 8.0693142212399e-02; + sqrtAsti[21] = 3.6697599429016e+04; + Bi[21] = 6.8468585800634e-01; + Fomega[21] = 4.8508000000000e-01; + + // species 22: NH3 + // Computed from Lennard-Jones + sqrtOneOverTc[22] = 3.9746557257596e-02; + sqrtAsti[22] = 1.0711394012187e+05; + Bi[22] = 7.5270623103672e-01; + Fomega[22] = 4.8508000000000e-01; + + // species 23: N2H4 + // Computed from Lennard-Jones + sqrtOneOverTc[23] = 6.0882871132455e-02; + sqrtAsti[23] = 6.4796713909941e+04; + Bi[23] = 1.2160862543432e+00; + Fomega[23] = 4.8508000000000e-01; + + // species 24: N + // Computed from Lennard-Jones + sqrtOneOverTc[24] = 1.0316275924140e-01; + sqrtAsti[24] = 6.0230890290396e+04; + Bi[24] = 1.3186329724611e+00; + Fomega[24] = 4.8508000000000e-01; + + // species 25: NO3 + // Computed from Lennard-Jones + sqrtOneOverTc[25] = 5.0328203473231e-02; + sqrtAsti[25] = 3.0491747499456e+04; + Bi[25] = 3.5604224539896e-01; + Fomega[25] = 4.8508000000000e-01; + + // species 26: NH + // Computed from Lennard-Jones + sqrtOneOverTc[26] = 9.7460146948181e-02; + sqrtAsti[26] = 4.2837862875144e+04; + Bi[26] = 6.3815972382091e-01; + Fomega[26] = 4.8508000000000e-01; + + // species 27: NNH + // Computed from Lennard-Jones + sqrtOneOverTc[27] = 1.0316275924140e-01; + sqrtAsti[27] = 3.5924732016994e+04; + Bi[27] = 9.7197400314873e-01; + Fomega[27] = 4.8508000000000e-01; + + // species 28: NH2 + // Computed from Lennard-Jones + sqrtOneOverTc[28] = 9.7460146948181e-02; + sqrtAsti[28] = 4.0142951449185e+04; + Bi[28] = 5.9801337160150e-01; + Fomega[28] = 4.8508000000000e-01; + + // species 29: H2NO + // Computed from Lennard-Jones + sqrtOneOverTc[29] = 8.0693142212399e-02; + sqrtAsti[29] = 3.6697599429016e+04; + Bi[29] = 6.8468585800634e-01; + Fomega[29] = 4.8508000000000e-01; + + // species 30: N2H3 + // Computed from Lennard-Jones + sqrtOneOverTc[30] = 6.1639209090192e-02; + sqrtAsti[30] = 5.8500221172854e+04; + Bi[30] = 9.8405007346676e-01; + Fomega[30] = 4.8508000000000e-01; +} + +// gauss-jordan solver external routine +// Replace this routine with the one generated by the Gauss Jordan solver of DW +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +sgjsolve(amrex::Real* /*A*/, amrex::Real* /*x*/, amrex::Real* /*b*/) +{ + amrex::Abort("sgjsolve not implemented, choose a different solver "); +} + +// Replace this routine with the one generated by the Gauss Jordan solver of DW +AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void +sgjsolve_simplified(amrex::Real* /*A*/, amrex::Real* /*x*/, amrex::Real* /*b*/) +{ + amrex::Abort( + "sgjsolve_simplified not implemented, choose a different solver "); +} + +#endif diff --git a/Mechanisms/POLIMI2020/mechanism.cpp b/Mechanisms/POLIMI2020/mechanism.cpp new file mode 100644 index 000000000..f70019bd1 --- /dev/null +++ b/Mechanisms/POLIMI2020/mechanism.cpp @@ -0,0 +1,702 @@ +#include "mechanism.H" +const int rmap[NUM_REACTIONS] = { + 8, 21, 47, 140, 182, 201, 187, 0, 3, 5, 7, 22, 60, 163, 177, + 1, 2, 4, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 178, 179, 180, 181, 183, 184, 185, 186, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 202}; + +// Returns 0-based map of reaction order +void +GET_RMAP(int* _rmap) +{ + for (int j = 0; j < NUM_REACTIONS; ++j) { + _rmap[j] = rmap[j]; + } +} + +// Returns a count of gas species in a gas reaction, and their indices +// and stoichiometric coefficients. (Eq 50) +void +CKINU(const int i, int& nspec, int ki[], int nu[]) +{ + const int ns[NUM_GAS_REACTIONS] = { + 2, 4, 4, 2, 4, 3, 3, 3, 2, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 3, 3, 3, 3, + 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 2, 3, + 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, + 4, 4, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 4, 4, 4, + 4, 4, 4, 2, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 2, 3, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 5, 3, 3, 3, 4, 4, 3, 4, + 4, 3, 3, 3, 4, 4, 3, 4, 4, 4, 4, 4, 2, 4, 4, 4, 3, 3, 4}; + const int kiv[NUM_GAS_REACTIONS * 5] = { + 3, 4, 0, 0, 0, 3, 6, 4, 8, 0, 3, 8, 4, 7, 0, 6, 5, 0, 0, 0, + 4, 5, 6, 8, 0, 4, 8, 7, 0, 0, 7, 6, 8, 0, 0, 4, 6, 8, 0, 0, + 9, 8, 0, 0, 0, 4, 9, 7, 8, 0, 4, 9, 3, 10, 0, 9, 6, 10, 8, 0, + 9, 8, 7, 10, 0, 9, 8, 7, 10, 0, 4, 10, 8, 0, 0, 4, 10, 3, 5, 0, + 10, 6, 5, 8, 0, 10, 8, 7, 5, 0, 10, 8, 7, 5, 0, 10, 9, 5, 0, 0, + 10, 9, 5, 0, 0, 4, 5, 10, 0, 0, 6, 8, 10, 0, 0, 22, 4, 28, 0, 0, + 4, 28, 3, 26, 0, 4, 22, 3, 28, 0, 22, 8, 7, 28, 0, 22, 6, 28, 8, 0, + 10, 22, 9, 28, 0, 22, 5, 10, 28, 0, 28, 6, 4, 14, 0, 28, 6, 4, 14, 0, + 28, 6, 26, 8, 0, 28, 6, 26, 8, 0, 28, 8, 7, 26, 0, 28, 5, 14, 8, 0, + 28, 5, 29, 6, 0, 10, 28, 29, 8, 0, 26, 28, 4, 18, 0, 26, 28, 24, 22, 0, + 26, 24, 28, 0, 0, 26, 3, 1, 0, 0, 26, 4, 1, 0, 0, 28, 26, 22, 0, 0, + 28, 23, 0, 0, 0, 28, 4, 30, 0, 0, 28, 3, 19, 0, 0, 20, 28, 8, 0, 0, + 4, 20, 3, 21, 0, 4, 20, 3, 29, 0, 20, 6, 21, 8, 0, 20, 6, 29, 8, 0, + 20, 8, 7, 21, 0, 20, 8, 29, 7, 0, 28, 20, 21, 22, 0, 28, 20, 29, 22, 0, + 26, 20, 21, 28, 0, 26, 20, 29, 28, 0, 10, 20, 9, 21, 0, 10, 20, 29, 9, 0, + 21, 4, 14, 0, 0, 21, 5, 14, 10, 0, 4, 21, 28, 8, 0, 4, 21, 3, 14, 0, + 21, 6, 14, 8, 0, 21, 6, 14, 8, 0, 21, 8, 7, 14, 0, 21, 10, 9, 14, 0, + 21, 10, 20, 5, 0, 21, 28, 14, 22, 0, 21, 28, 30, 8, 0, 21, 28, 19, 7, 0, + 21, 13, 14, 16, 0, 28, 13, 29, 11, 0, 28, 13, 7, 12, 0, 28, 11, 7, 1, 0, + 28, 11, 27, 8, 0, 4, 26, 3, 24, 0, 26, 6, 4, 11, 0, 26, 8, 4, 14, 0, + 26, 8, 7, 24, 0, 26, 5, 14, 6, 0, 26, 5, 11, 8, 0, 24, 26, 4, 1, 0, + 26, 11, 4, 12, 0, 26, 11, 1, 8, 0, 26, 13, 12, 8, 0, 26, 13, 14, 11, 0, + 24, 8, 4, 11, 0, 24, 5, 11, 6, 0, 24, 11, 1, 6, 0, 23, 3, 19, 0, 0, + 4, 23, 3, 30, 0, 23, 6, 30, 8, 0, 23, 6, 7, 18, 0, 23, 8, 7, 30, 0, + 23, 28, 30, 22, 0, 23, 11, 14, 30, 0, 23, 13, 16, 30, 0, 23, 13, 15, 30, 0, + 30, 4, 18, 0, 0, 4, 30, 3, 18, 0, 30, 6, 14, 28, 0, 30, 6, 18, 8, 0, + 30, 8, 7, 18, 0, 30, 8, 19, 7, 0, 30, 28, 18, 22, 0, 30, 28, 19, 22, 0, + 10, 30, 9, 18, 0, 10, 30, 23, 5, 0, 18, 4, 27, 0, 0, 18, 4, 27, 0, 0, + 4, 18, 3, 27, 0, 18, 6, 27, 8, 0, 18, 8, 7, 27, 0, 18, 11, 12, 28, 0, + 18, 26, 28, 27, 0, 18, 28, 22, 27, 0, 18, 19, 0, 0, 0, 19, 4, 27, 0, 0, + 19, 4, 27, 0, 0, 19, 5, 28, 13, 0, 4, 19, 4, 18, 0, 4, 19, 3, 27, 0, + 19, 6, 28, 11, 0, 19, 6, 27, 8, 0, 19, 8, 7, 27, 0, 19, 28, 22, 27, 0, + 19, 10, 9, 27, 0, 27, 4, 1, 0, 0, 4, 27, 3, 1, 0, 27, 6, 4, 12, 0, + 27, 6, 26, 11, 0, 27, 6, 1, 8, 0, 27, 8, 7, 1, 0, 27, 5, 10, 1, 0, + 28, 27, 1, 22, 0, 10, 27, 9, 1, 0, 27, 11, 14, 1, 0, 10, 11, 13, 8, 0, + 11, 6, 13, 0, 0, 11, 8, 16, 0, 0, 14, 4, 11, 0, 0, 4, 14, 3, 11, 0, + 14, 6, 11, 8, 0, 14, 8, 4, 16, 0, 14, 8, 7, 11, 0, 14, 5, 10, 11, 0, + 14, 28, 22, 11, 0, 14, 11, 12, 8, 0, 14, 13, 16, 11, 0, 14, 13, 15, 11, 0, + 14, 7, 12, 0, 0, 14, 10, 15, 8, 0, 4, 16, 3, 13, 0, 4, 15, 3, 13, 0, + 4, 16, 7, 11, 0, 16, 6, 13, 8, 0, 16, 8, 7, 13, 0, 16, 26, 28, 13, 0, + 16, 28, 22, 13, 0, 16, 7, 11, 13, 0, 29, 21, 0, 0, 0, 29, 4, 14, 0, 0, + 4, 29, 3, 14, 0, 4, 29, 28, 8, 0, 29, 6, 14, 8, 0, 29, 8, 7, 14, 0, + 29, 11, 14, 0, 0, 29, 13, 14, 16, 0, 29, 28, 14, 22, 0, 29, 5, 14, 10, 0, + 29, 10, 9, 14, 0, 4, 25, 13, 8, 0, 25, 6, 13, 5, 0, 25, 8, 10, 13, 0, + 10, 25, 13, 5, 8, 25, 11, 5, 0, 0, 25, 11, 5, 0, 0, 25, 13, 5, 0, 0, + 4, 13, 11, 8, 0, 13, 6, 11, 5, 0, 13, 6, 25, 0, 0, 10, 13, 16, 5, 0, + 10, 13, 15, 5, 0, 13, 11, 5, 0, 0, 13, 11, 25, 0, 0, 12, 1, 6, 0, 0, + 4, 12, 1, 8, 0, 4, 12, 1, 8, 0, 12, 6, 11, 0, 0, 12, 6, 1, 5, 0, + 12, 8, 10, 1, 0, 12, 11, 1, 13, 0, 15, 6, 13, 8, 0, 15, 8, 7, 13, 0, + 15, 16, 0, 0, 0, 15, 28, 22, 13, 0, 4, 15, 7, 11, 0, 4, 15, 14, 8, 0, + 11, 8, 15, 0, 0, 13, 8, 17, 0, 0, 17, 8, 7, 25, 0}; + const int nuv[NUM_GAS_REACTIONS * 5] = { + -1, 2, 0, 0, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -2, 1, 0, 0, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 0, 0, -1, -1, 2, 0, 0, -1, -1, 1, 0, 0, + -1, 2, 0, 0, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 2, 0, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -2, 1, 1, 0, 0, + -2, 1, 1, 0, 0, -1, -1, 1, 0, 0, -1, -1, 1, 0, 0, -1, 1, 1, 0, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -2, 1, 1, 0, 0, -2, 1, 1, 0, 0, -2, 2, 1, 0, 0, -2, 1, 1, 0, 0, + -2, 1, 0, 0, 0, -2, 1, 1, 0, 0, -2, 1, 1, 0, 0, -1, 1, 1, 0, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, 1, 1, 0, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, 1, 1, 0, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, 1, 1, 0, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, 1, 1, 0, 0, -1, 1, 1, 0, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, 1, 0, 0, 0, -1, 1, 1, 0, 0, + -1, 1, 1, 0, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, 1, 1, 0, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 0, 0, -1, -1, 1, 0, 0, -1, 1, 1, 0, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -2, 1, 1, 0, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -2, 1, 1, 1, 0, -1, 1, 0, 0, 0, -1, 1, 1, 0, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 2, 0, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 1, -1, 1, 1, 0, 0, -1, 1, 1, 0, 0, -2, 2, 1, 0, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 0, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -2, 2, 1, 0, 0, -2, 1, 1, 0, 0, -1, 1, 1, 0, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 2, 0, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, 1, 0, 0, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, + -1, -1, 1, 0, 0, -1, -1, 1, 0, 0, -1, -1, 1, 1, 0}; + if (i < 1) { + // Return max num species per reaction + nspec = 5; + } else { + if (i > NUM_GAS_REACTIONS) { + nspec = -1; + } else { + nspec = ns[i - 1]; + for (int j = 0; j < nspec; ++j) { + ki[j] = kiv[(i - 1) * 5 + j] + 1; + nu[j] = nuv[(i - 1) * 5 + j]; + } + } + } +} + +// Returns the progress rates of each reactions +// Given P, T, and mole fractions +void +CKKFKR( + const amrex::Real P, + const amrex::Real T, + const amrex::Real x[], + amrex::Real q_f[], + amrex::Real q_r[]) +{ + amrex::Real c[31]; // temporary storage + amrex::Real PORT = + 1e6 * P / (8.31446261815324e+07 * T); // 1e6 * P/RT so c goes to SI units + + // Compute conversion, see Eq 10 + for (int id = 0; id < 31; ++id) { + c[id] = x[id] * PORT; + } + + // convert to chemkin units + progressRateFR(q_f, q_r, c, T); + + // convert to chemkin units + for (int id = 0; id < 203; ++id) { + q_f[id] *= 1.0e-6; + q_r[id] *= 1.0e-6; + } +} + +// compute the progress rate for each reaction +// USES progressRate : todo switch to GPU +void +progressRateFR( + amrex::Real* q_f, amrex::Real* q_r, amrex::Real* sc, amrex::Real T) +{ + const amrex::Real invT = 1.0 / T; + const amrex::Real logT = log(T); + // compute the Gibbs free energy + amrex::Real g_RT[31]; + gibbs(g_RT, T); + + amrex::Real sc_qss[1]; + comp_qfqr(q_f, q_r, sc, sc_qss, T, invT, logT); +} + +// save atomic weights into array +void +atomicWeight(amrex::Real* awt) +{ + awt[0] = 12.011000; // C + awt[1] = 1.008000; // H + awt[2] = 14.007000; // N + awt[3] = 15.999000; // O + awt[4] = 39.950000; // Ar + awt[5] = 4.002602; // He +} + +// get atomic weight for all elements +void +CKAWT(amrex::Real* awt) +{ + atomicWeight(awt); +} + +// Returns the elemental composition +// of the speciesi (mdim is num of elements) +void +CKNCF(int* ncf) +{ + int kd = 6; + // Zero ncf + for (int id = 0; id < kd * 31; ++id) { + ncf[id] = 0; + } + + // AR + ncf[0 * kd + 4] = 1; // Ar + + // N2 + ncf[1 * kd + 2] = 2; // N + + // HE + ncf[2 * kd + 5] = 1; // He + + // H2 + ncf[3 * kd + 1] = 2; // H + + // H + ncf[4 * kd + 1] = 1; // H + + // O2 + ncf[5 * kd + 3] = 2; // O + + // O + ncf[6 * kd + 3] = 1; // O + + // H2O + ncf[7 * kd + 1] = 2; // H + ncf[7 * kd + 3] = 1; // O + + // OH + ncf[8 * kd + 1] = 1; // H + ncf[8 * kd + 3] = 1; // O + + // H2O2 + ncf[9 * kd + 1] = 2; // H + ncf[9 * kd + 3] = 2; // O + + // HO2 + ncf[10 * kd + 1] = 1; // H + ncf[10 * kd + 3] = 2; // O + + // NO + ncf[11 * kd + 2] = 1; // N + ncf[11 * kd + 3] = 1; // O + + // N2O + ncf[12 * kd + 2] = 2; // N + ncf[12 * kd + 3] = 1; // O + + // NO2 + ncf[13 * kd + 2] = 1; // N + ncf[13 * kd + 3] = 2; // O + + // HNO + ncf[14 * kd + 1] = 1; // H + ncf[14 * kd + 2] = 1; // N + ncf[14 * kd + 3] = 1; // O + + // HNO2 + ncf[15 * kd + 1] = 1; // H + ncf[15 * kd + 2] = 1; // N + ncf[15 * kd + 3] = 2; // O + + // HONO + ncf[16 * kd + 1] = 1; // H + ncf[16 * kd + 2] = 1; // N + ncf[16 * kd + 3] = 2; // O + + // HONO2 + ncf[17 * kd + 1] = 1; // H + ncf[17 * kd + 2] = 1; // N + ncf[17 * kd + 3] = 3; // O + + // N2H2 + ncf[18 * kd + 1] = 2; // H + ncf[18 * kd + 2] = 2; // N + + // H2NN + ncf[19 * kd + 1] = 2; // H + ncf[19 * kd + 2] = 2; // N + + // NH2OH + ncf[20 * kd + 1] = 3; // H + ncf[20 * kd + 2] = 1; // N + ncf[20 * kd + 3] = 1; // O + + // HNOH + ncf[21 * kd + 1] = 2; // H + ncf[21 * kd + 2] = 1; // N + ncf[21 * kd + 3] = 1; // O + + // NH3 + ncf[22 * kd + 1] = 3; // H + ncf[22 * kd + 2] = 1; // N + + // N2H4 + ncf[23 * kd + 1] = 4; // H + ncf[23 * kd + 2] = 2; // N + + // N + ncf[24 * kd + 2] = 1; // N + + // NO3 + ncf[25 * kd + 2] = 1; // N + ncf[25 * kd + 3] = 3; // O + + // NH + ncf[26 * kd + 1] = 1; // H + ncf[26 * kd + 2] = 1; // N + + // NNH + ncf[27 * kd + 1] = 1; // H + ncf[27 * kd + 2] = 2; // N + + // NH2 + ncf[28 * kd + 1] = 2; // H + ncf[28 * kd + 2] = 1; // N + + // H2NO + ncf[29 * kd + 1] = 2; // H + ncf[29 * kd + 2] = 1; // N + ncf[29 * kd + 3] = 1; // O + + // N2H3 + ncf[30 * kd + 1] = 3; // H + ncf[30 * kd + 2] = 2; // N +} + +// Returns the vector of strings of element names +void +CKSYME_STR(amrex::Vector& ename) +{ + ename.resize(6); + ename[0] = "C"; + ename[1] = "H"; + ename[2] = "N"; + ename[3] = "O"; + ename[4] = "Ar"; + ename[5] = "He"; +} + +// Returns the vector of strings of species names +void +CKSYMS_STR(amrex::Vector& kname) +{ + kname.resize(31); + kname[0] = "AR"; + kname[1] = "N2"; + kname[2] = "HE"; + kname[3] = "H2"; + kname[4] = "H"; + kname[5] = "O2"; + kname[6] = "O"; + kname[7] = "H2O"; + kname[8] = "OH"; + kname[9] = "H2O2"; + kname[10] = "HO2"; + kname[11] = "NO"; + kname[12] = "N2O"; + kname[13] = "NO2"; + kname[14] = "HNO"; + kname[15] = "HNO2"; + kname[16] = "HONO"; + kname[17] = "HONO2"; + kname[18] = "N2H2"; + kname[19] = "H2NN"; + kname[20] = "NH2OH"; + kname[21] = "HNOH"; + kname[22] = "NH3"; + kname[23] = "N2H4"; + kname[24] = "N"; + kname[25] = "NO3"; + kname[26] = "NH"; + kname[27] = "NNH"; + kname[28] = "NH2"; + kname[29] = "H2NO"; + kname[30] = "N2H3"; +} + +// compute the sparsity pattern of the chemistry Jacobian +void +SPARSITY_INFO(int* nJdata, const int* consP, int NCELLS) +{ + amrex::GpuArray Jac = {0.0}; + amrex::GpuArray conc = {0.0}; + for (int n = 0; n < 31; n++) { + conc[n] = 1.0 / 31.000000; + } + aJacobian(Jac.data(), conc.data(), 1500.0, *consP); + + int nJdata_tmp = 0; + for (int k = 0; k < 32; k++) { + for (int l = 0; l < 32; l++) { + if (Jac[32 * k + l] != 0.0) { + nJdata_tmp = nJdata_tmp + 1; + } + } + } + + *nJdata = NCELLS * nJdata_tmp; +} + +// compute the sparsity pattern of the system Jacobian +void +SPARSITY_INFO_SYST(int* nJdata, const int* consP, int NCELLS) +{ + amrex::GpuArray Jac = {0.0}; + amrex::GpuArray conc = {0.0}; + for (int n = 0; n < 31; n++) { + conc[n] = 1.0 / 31.000000; + } + aJacobian(Jac.data(), conc.data(), 1500.0, *consP); + + int nJdata_tmp = 0; + for (int k = 0; k < 32; k++) { + for (int l = 0; l < 32; l++) { + if (k == l) { + nJdata_tmp = nJdata_tmp + 1; + } else { + if (Jac[32 * k + l] != 0.0) { + nJdata_tmp = nJdata_tmp + 1; + } + } + } + } + + *nJdata = NCELLS * nJdata_tmp; +} + +// compute the sparsity pattern of the simplified (for preconditioning) system +// Jacobian +void +SPARSITY_INFO_SYST_SIMPLIFIED(int* nJdata, const int* consP) +{ + amrex::GpuArray Jac = {0.0}; + amrex::GpuArray conc = {0.0}; + for (int n = 0; n < 31; n++) { + conc[n] = 1.0 / 31.000000; + } + aJacobian_precond(Jac.data(), conc.data(), 1500.0, *consP); + + int nJdata_tmp = 0; + for (int k = 0; k < 32; k++) { + for (int l = 0; l < 32; l++) { + if (k == l) { + nJdata_tmp = nJdata_tmp + 1; + } else { + if (Jac[32 * k + l] != 0.0) { + nJdata_tmp = nJdata_tmp + 1; + } + } + } + } + + nJdata[0] = nJdata_tmp; +} + +// compute the sparsity pattern of the chemistry Jacobian in CSC format -- base +// 0 +void +SPARSITY_PREPROC_CSC(int* rowVals, int* colPtrs, const int* consP, int NCELLS) +{ + amrex::GpuArray Jac = {0.0}; + amrex::GpuArray conc = {0.0}; + for (int n = 0; n < 31; n++) { + conc[n] = 1.0 / 31.000000; + } + aJacobian(Jac.data(), conc.data(), 1500.0, *consP); + + colPtrs[0] = 0; + int nJdata_tmp = 0; + for (int nc = 0; nc < NCELLS; nc++) { + int offset_row = nc * 32; + int offset_col = nc * 32; + for (int k = 0; k < 32; k++) { + for (int l = 0; l < 32; l++) { + if (Jac[32 * k + l] != 0.0) { + rowVals[nJdata_tmp] = l + offset_row; + nJdata_tmp = nJdata_tmp + 1; + } + } + colPtrs[offset_col + (k + 1)] = nJdata_tmp; + } + } +} + +// compute the sparsity pattern of the chemistry Jacobian in CSR format -- base +// 0 +void +SPARSITY_PREPROC_CSR( + int* colVals, int* rowPtrs, const int* consP, int NCELLS, int base) +{ + amrex::GpuArray Jac = {0.0}; + amrex::GpuArray conc = {0.0}; + for (int n = 0; n < 31; n++) { + conc[n] = 1.0 / 31.000000; + } + aJacobian(Jac.data(), conc.data(), 1500.0, *consP); + + if (base == 1) { + rowPtrs[0] = 1; + int nJdata_tmp = 1; + for (int nc = 0; nc < NCELLS; nc++) { + int offset = nc * 32; + for (int l = 0; l < 32; l++) { + for (int k = 0; k < 32; k++) { + if (Jac[32 * k + l] != 0.0) { + colVals[nJdata_tmp - 1] = k + 1 + offset; + nJdata_tmp = nJdata_tmp + 1; + } + } + rowPtrs[offset + (l + 1)] = nJdata_tmp; + } + } + } else { + rowPtrs[0] = 0; + int nJdata_tmp = 0; + for (int nc = 0; nc < NCELLS; nc++) { + int offset = nc * 32; + for (int l = 0; l < 32; l++) { + for (int k = 0; k < 32; k++) { + if (Jac[32 * k + l] != 0.0) { + colVals[nJdata_tmp] = k + offset; + nJdata_tmp = nJdata_tmp + 1; + } + } + rowPtrs[offset + (l + 1)] = nJdata_tmp; + } + } + } +} + +// compute the sparsity pattern of the system Jacobian +// CSR format BASE is user choice +void +SPARSITY_PREPROC_SYST_CSR( + int* colVals, int* rowPtr, const int* consP, int NCELLS, int base) +{ + amrex::GpuArray Jac = {0.0}; + amrex::GpuArray conc = {0.0}; + for (int n = 0; n < 31; n++) { + conc[n] = 1.0 / 31.000000; + } + aJacobian(Jac.data(), conc.data(), 1500.0, *consP); + + if (base == 1) { + rowPtr[0] = 1; + int nJdata_tmp = 1; + for (int nc = 0; nc < NCELLS; nc++) { + int offset = nc * 32; + for (int l = 0; l < 32; l++) { + for (int k = 0; k < 32; k++) { + if (k == l) { + colVals[nJdata_tmp - 1] = l + 1 + offset; + nJdata_tmp = nJdata_tmp + 1; + } else { + if (Jac[32 * k + l] != 0.0) { + colVals[nJdata_tmp - 1] = k + 1 + offset; + nJdata_tmp = nJdata_tmp + 1; + } + } + } + rowPtr[offset + (l + 1)] = nJdata_tmp; + } + } + } else { + rowPtr[0] = 0; + int nJdata_tmp = 0; + for (int nc = 0; nc < NCELLS; nc++) { + int offset = nc * 32; + for (int l = 0; l < 32; l++) { + for (int k = 0; k < 32; k++) { + if (k == l) { + colVals[nJdata_tmp] = l + offset; + nJdata_tmp = nJdata_tmp + 1; + } else { + if (Jac[32 * k + l] != 0.0) { + colVals[nJdata_tmp] = k + offset; + nJdata_tmp = nJdata_tmp + 1; + } + } + } + rowPtr[offset + (l + 1)] = nJdata_tmp; + } + } + } +} + +// compute the sparsity pattern of the simplified (for precond) system Jacobian +// on CPU BASE 0 +void +SPARSITY_PREPROC_SYST_SIMPLIFIED_CSC( + int* rowVals, int* colPtrs, int* indx, const int* consP) +{ + amrex::GpuArray Jac = {0.0}; + amrex::GpuArray conc = {0.0}; + for (int n = 0; n < 31; n++) { + conc[n] = 1.0 / 31.000000; + } + aJacobian_precond(Jac.data(), conc.data(), 1500.0, *consP); + + colPtrs[0] = 0; + int nJdata_tmp = 0; + for (int k = 0; k < 32; k++) { + for (int l = 0; l < 32; l++) { + if (k == l) { + rowVals[nJdata_tmp] = l; + indx[nJdata_tmp] = 32 * k + l; + nJdata_tmp = nJdata_tmp + 1; + } else { + if (Jac[32 * k + l] != 0.0) { + rowVals[nJdata_tmp] = l; + indx[nJdata_tmp] = 32 * k + l; + nJdata_tmp = nJdata_tmp + 1; + } + } + } + colPtrs[k + 1] = nJdata_tmp; + } +} + +// compute the sparsity pattern of the simplified (for precond) system Jacobian +// CSR format BASE is under choice +void +SPARSITY_PREPROC_SYST_SIMPLIFIED_CSR( + int* colVals, int* rowPtr, const int* consP, int base) +{ + amrex::GpuArray Jac = {0.0}; + amrex::GpuArray conc = {0.0}; + for (int n = 0; n < 31; n++) { + conc[n] = 1.0 / 31.000000; + } + aJacobian_precond(Jac.data(), conc.data(), 1500.0, *consP); + + if (base == 1) { + rowPtr[0] = 1; + int nJdata_tmp = 1; + for (int l = 0; l < 32; l++) { + for (int k = 0; k < 32; k++) { + if (k == l) { + colVals[nJdata_tmp - 1] = l + 1; + nJdata_tmp = nJdata_tmp + 1; + } else { + if (Jac[32 * k + l] != 0.0) { + colVals[nJdata_tmp - 1] = k + 1; + nJdata_tmp = nJdata_tmp + 1; + } + } + } + rowPtr[l + 1] = nJdata_tmp; + } + } else { + rowPtr[0] = 0; + int nJdata_tmp = 0; + for (int l = 0; l < 32; l++) { + for (int k = 0; k < 32; k++) { + if (k == l) { + colVals[nJdata_tmp] = l; + nJdata_tmp = nJdata_tmp + 1; + } else { + if (Jac[32 * k + l] != 0.0) { + colVals[nJdata_tmp] = k; + nJdata_tmp = nJdata_tmp + 1; + } + } + } + rowPtr[l + 1] = nJdata_tmp; + } + } +} diff --git a/Mechanisms/POLIMI2020/mechanism.inp b/Mechanisms/POLIMI2020/mechanism.inp new file mode 100644 index 000000000..733c37484 --- /dev/null +++ b/Mechanisms/POLIMI2020/mechanism.inp @@ -0,0 +1,444 @@ +! +! A. Stagni, C. Cavallotti, S. Arunthanayothin, Y. Song, +! O. Herbinet, F. Battin-Leclerc, T. Faravelli +! "An experimental, theoretical and kinetic-modeling study of the gas-phase oxidation of ammonia" +! Reaction Chemistry and Engineering (submitted) (2020). +! +! Kinetic mechanism of Ammonia pyrolysis and oxidation +! +! Submitted to Reaction Chemistry and Engineering (November 2019) +! +! CHEMKIN format +! +ELEMENTS +!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +!\START_SPECIES_LIST +!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +C +H +N +O +AR +HE +END +!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +!\START_SPECIES_LIST +!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +SPECIES +!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +!\SPECIES_MODULE: \H2_O2 +!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +AR N2 HE +H2 H O2 O H2O +OH H2O2 HO2 +!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +!\END_SPECIES_MODULE: \H2_O2 +!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +!\SPECIES_MODULE: \NOx_H2O2_HT +! +NO +N2O +NO2 +HNO +HNO2 +HONO +HONO2 +N2H2 +H2NN +NH2OH +HNOH +NH3 +N2H4 +N +NO3 +NH +NNH +NH2 +H2NO +N2H3 +! +!\END_SPECIES_MODULE: \NOx_H2O2_HT +END +!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +!\END_SPECIES_LIST +!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +! +!\START_KINETICS_INPUT +REACTIONS +!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +!\KINETICS_MODULE: \H2_O2 +!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +H2+M<=>H+H+M +4.5770000E+019 -1.4000000E+000 +1.0440000E+005 !\AUTHOR: AK !\REF: TSANG AND HAMPSON, J. PHYS. CHEM. REF. DATA, 15:1087 (1986) !\COMMENT: + H2 / 2.500 / H2O / 12.000 / HE / 0.830 / !3RD BODY COLLIDER EFFICIENCIES +H2+O<=>H+OH +5.0800000E+004 +2.6700000E+000 +6.2920000E+003 !\AUTHOR: AK !\REF:SUTHERLAND ET AL., 21ST SYMPOSIUM, P. 929 (1986) !\COMMENT: +H2+OH<=>H+H2O +4.3800000E+013 +0.0000000E+000 +6.9900000E+003 !\AUTHOR: AK !\REF:LAM ET AL. SUBMITTED IJCK !\COMMENT +O+O+M<=>O2+M +6.1650000E+015 -5.0000000E-001 +0.0000000E+000 !\AUTHOR: AK !\REF: TSANG AND HAMPSON, J. PHYS. CHEM. REF. DATA, 15:1087 (1986) !\COMMENT: + H2 / 2.500 / H2O / 12.000 / AR / 0.830 / HE / 0.830 / !3RD BODY COLLIDER EFFICIENCIES +O2+H<=>O+OH +1.1400000E+014 +0.0000000E+000 +1.5286000E+004 !\AUTHOR: AK !\REF: HONG ET AL. PROC. OF THE COMB. INST. 33 (2011) 309-316 !\COMMENT: 2 PARAMETER FIT ! ER_1706 +10% (1.04 --> 1.14)) +H+OH+M<=>H2O+M +3.5000000E+022 -2.0000000E+000 +0.0000000E+000 !\AUTHOR: AK !\REF: LI IJCK 36: 566-575, 2004 !\COMMENT:OPTIMISED TO FIT H2 AND CH4 FLAMES DATA + H2 / 0.730 / H2O / 3.650 / AR / 0.380 / !3RD BODY COLLIDER EFFICIENCIES +O+H2O<=>OH+OH +6.7000000E+007 +1.7040000E+000 +1.4986800E+004 !\AUTHOR: AK !\REF: SUTHERLAND ET AL., 23RD SYMPOSIUM, P. 51 (1990) !\COMMENT: +O+H+M<=>OH+M +4.7140000E+018 -1.0000000E+000 +0.0000000E+000 !\AUTHOR: AK !\REF: TSANG AND HAMPSON, J. PHYS. CHEM. REF. DATA, 15:1087 (1986) !\COMMENT: + H2 / 2.500 / H2O / 12.000 / AR / 0.750 / HE / 0.750 / !3RD BODY COLLIDER EFFICIENCIES +H2O2(+M)<=>OH+OH(+M) +2.0000000E+012 +9.0000000E-001 +4.8749000E+004 !\AUTHOR: AK !\REF: TROE, COMBUST. FLAME, 158:594-601 (2011)!\COMMENT: RATE CONSTANT IS FOR N2, !\COMMENT: EFFICIENCIS OF H2O FROM THE SAME REF, +LOW / +2.4900000E+024 -2.3000000E+000 +4.8749000E+004 / !LOW-PRESSURE-LIMIT +TROE / +4.3000000E-001 +1.0000000E-030 +1.0000000E+030 / !TROE PARAMETERS + H2O / 7.650 / N2 / 1.500 / O2 / 1.200 / HE / 0.650 / H2O2 / 7.700 / H2 / 3.700 / !3RD BODY COLLIDER EFFICIENCIES +H2O2+H<=>H2O+OH +2.4100000E+013 +0.0000000E+000 +3.9700000E+003 !\AUTHOR: AK !\REF:TSANG AND HAMPSON, J. PHYS. CHEM. REF. DATA, 15:1087 (1986) !\COMMENT: +H2O2+H<=>H2+HO2 +2.1500000E+010 +1.0000000E+000 +6.0000000E+003 !\AUTHOR: AK !\REF: ELLINGSON J. PHYS. CHEM. (2007) 111, (51), 13554-13566 !\COMMENT: +H2O2+O<=>OH+HO2 +9.5500000E+006 +2.0000000E+000 +3.9700000E+003 !\AUTHOR: AK !\REF:TSANG AND HAMPSON, J. PHYS. CHEM. REF. DATA, 15:1087 (1986) !\COMMENT: +H2O2+OH<=>H2O+HO2 +1.7400000E+012 +0.0000000E+000 +3.1800000E+002 !\AUTHOR: AK !\REF: HONG ET AL. J. PHYS. CHEM. A 114 (2010) 5718-5727 !\COMMENT: +DUP +H2O2+OH<=>H2O+HO2 +7.5900000E+013 +0.0000000E+000 +7.2690000E+003 !\AUTHOR: !\REF: !\COMMENT: +DUP +HO2+H<=>OH+OH +7.0790000E+013 +0.0000000E+000 +2.9500000E+002 !\AUTHOR: KPS !\REF: !\COMMENT: +HO2+H<=>H2+O2 +1.1402000E+010 +1.0827000E+000 +5.5378000E+002 !\AUTHOR: AK !\REF:MICHAEL SUTHERLAND 2000 !\COMMENT: +HO2+O<=>OH+O2 +3.2500000E+013 +0.0000000E+000 +0.0000000E+000 !\AUTHOR: AK !\REF:BAULCH ET AL., J. PHYS. CHEM. REF DATA, 21:411 (1992) +OH+HO2<=>H2O+O2 +7.0000000E+012 +0.0000000E+000 -1.0929600E+003 !\AUTHOR: ?? !\REF: hong pci 2013 1015C !\COMMENT: WARNING +DUP +OH+HO2<=>H2O+O2 +4.5000000E+014 +0.0000000E+000 +1.0929600E+004 !\AUTHOR: !\REF: !\COMMENT: +DUP +HO2+HO2<=>H2O2+O2 +1.0000000E+014 +0.0000000E+000 +1.1040883E+004 !\AUTHOR: AK !\REF: hong pci 2013, kapel 2002 !\COMMENT: WARNING +DUP +HO2+HO2<=>H2O2+O2 +1.9000000E+011 +0.0000000E+000 -1.4089248E+003 !\AUTHOR: !\REF: !\COMMENT: +DUP +H+O2(+M)<=>HO2(+M) +4.6500000E+012 +4.4000000E-001 +0.0000000E+000 !\AUTHOR: AK !\REF:FERNANDES PCCP 2008 !COMMENT: Efficiencis of AR and HE derived from seperated reactions, +LOW / +1.7370000E+019 -1.2300000E+000 +0.0000000E+000 / !LOW-PRESSURE-LIMIT +TROE / +6.7000000E-001 +1.0000000E-030 +1.0000000E+030 +1.0000000E+030 / !TROE PARAMETERS + H2 / 1.300 / HE / 0.640 / H2O / 10.000 / AR / 0.500 / !3RD BODY COLLIDER EFFICIENCIES +O+OH+M=HO2+M +1.0000000E+016 +0.0000000E+000 +0.0000000E+000 !\AUTHOR: ?? !\REF: ?? !COMMENT: From POLIMI 1700 +!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +!\END_KINETICS_MODULE: \H2_O2 !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +!\KINETICS_MODULE: \NOx_H2O2_HT +! +NH3=NH2+H .3497E+31 -5.224 111163.3 !\AUTHOR: AS !\REF: Stagni, A. et al. React. Chem. Eng. (submitted) (2020). !\COMMENT: T = 800-2500 K fitted +PLOG / 0.1 .7230E+30 -5.316 110862.4 / +PLOG / 1 .3497E+31 -5.224 111163.3 / +PLOG / 10 .1975E+32 -5.155 111887.8 / +PLOG / 100 .2689E+32 -4.920 112778.7 / +NH2+H=NH+H2 .4000E+14 .000 3650.0 !\AUTHOR: AS !\REF: Davidson, D. F., et al. Int Jour Chem Kinet, 22(5), 513-535 (1990). !\COMMENT: +NH3+H=H2+NH2 .1963E+05 2.854 8520.2 !\AUTHOR: AS !\REF: Stagni, A. et al. React. Chem. Eng. (submitted) (2020). !\COMMENT: T = 300-2500 K +NH3+OH=H2O+NH2 .1559E+06 2.372 118.9 !\AUTHOR: AS !\REF: Stagni, A. et al. React. Chem. Eng. (submitted) (2020). !\COMMENT: T = 300-2500 K +NH3+O=NH2+OH .4430E+03 3.180 6739.9 !\AUTHOR: AS !\REF: Stagni, A. et al. React. Chem. Eng. (submitted) (2020). !\COMMENT: T = 300-2500 K +NH3+HO2=NH2+H2O2 .1173E+01 3.839 17260.0 !\AUTHOR: AS !\REF: Stagni, A. et al. React. Chem. Eng. (submitted) (2020). !\COMMENT: T = 300-2500 K +NH3+O2=NH2+HO2 .1415E+11 1.285 55224.0 !\AUTHOR: AS !\REF: Stagni, A. et al. React. Chem. Eng. (submitted) (2020). !\COMMENT: T = 300-2500 K +NH2+O=HNO+H .1500E+16 -.547 836.7 !\AUTHOR: AS !\REF: Sumathi, R., et al. J Phys Chem A, 102(18), 3175-3183. (1998) !\COMMENT: Fit from chart (Figure 5) + DUPLICATE +NH2+O=HNO+H .7730E+14 -.277 646.4 !\AUTHOR: AS !\REF: Sumathi, R., et al. J Phys Chem A, 102(18), 3175-3183. (1998) !\COMMENT: Fit from chart (Figure 5) + DUPLICATE +NH2+O=NH+OH .7000E+13 0.000 .0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: + DUPLICATE +NH2+O=NH+OH .3300E+09 1.500 5076.8 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: + DUPLICATE +NH2+OH=NH+H2O .9600E+07 1.970 670.0 !\AUTHOR: AS !\REF: Mousavipour, S.H. et al. J. Phys. Chem. A 113 12961-12971 (2009) !\COMMENT: +NH2+O2=HNO+OH .2900E-01 3.764 18185.0 !\AUTHOR: AS !\REF: SJ Klippenstein LB Harding P Glarborg JA Miller CF 158 (2011) 774-789. !\COMMENT: +NH2+O2=H2NO+O .2600E+12 0.487 29050.0 !\AUTHOR: AS !\REF: SJ Klippenstein LB Harding P Glarborg JA Miller CF 158 (2011) 774-789. !\COMMENT: +NH2+HO2=OH+H2NO .1566E+14 .000 .0 !\AUTHOR: AS !\REF: Baulch, D. L., Bowman, C. T., et al. J Phys Chem Ref Data, 34(3), 757-1397 (2005). !\COMMENT: +NH2+NH=N2H2+H .1500E+16 -0.500 0.0 !\AUTHOR: AS !\REF: Davidson, D.F. et al. Int. J. Chem. Kinet. 22 513-535 (1990) !\COMMENT: +NH2+NH=NH3+N .9600E+04 2.460 107.0 !\AUTHOR: AS !\REF: SJ Klippenstein et al J Phys Chem A 113 10241-10259 (2009). !\COMMENT: +NH+NH=NH2+N .5700E+00 3.880 342.0 !\AUTHOR: AS !\REF: SJ Klippenstein et al J Phys Chem A 113 10241-10259 (2009). !\COMMENT: +NH+NH=>N2+H2 .6260E+13 -.036 -160.9 !\AUTHOR: AS !\REF: SJ Klippenstein et al J Phys Chem A 113 10241-10259 (2009). !\COMMENT: High-Pressure rate, dissociation of N2H2 (10%) +NH+NH=>N2+H+H .5634E+14 -.036 -160.9 !\AUTHOR: AS !\REF: SJ Klippenstein et al J Phys Chem A 113 10241-10259 (2009). !\COMMENT: High-Pressure rate, dissociation of N2H2 (90%) +NH2+NH2=NH3+NH .5640E+01 3.530 550.0 !\AUTHOR: AS !\REF: SJ Klippenstein et al J Phys Chem A 113 10241-10259 (2009). !\COMMENT: +NH2+NH2=N2H4 .5600E+49 -11.300 11882.3 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +PLOG / 0.1 .2000E+47 -10.930 9994.6 / +PLOG / 1.0 .5600E+49 -11.300 11882.3 / +PLOG / 10.0 .3200E+50 -11.180 13988.5 / +NH2+NH2=N2H3+H .1200E+13 -0.030 10084.0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +PLOG / 0.1 .9200E+12 -0.010 10014.5 / +PLOG / 1.0 .1200E+13 -0.030 10084.0 / +PLOG / 10.0 .4700E+13 -0.200 10620.5 / +NH2+NH2=H2NN+H2 .1200E+22 -3.080 3368.0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +PLOG / 0.1 .2400E+21 -2.910 2136.0 / +PLOG / 1.0 .1200E+22 -3.080 3368.0 / +PLOG / 10.0 .2300E+20 -2.540 4182.6 / +NH2OH(+M)=NH2+OH(+M) .1400E+21 -1.310 64080.0 !\AUTHOR: AS !\REF: SJ Klippenstein et al J Phys Chem A 113 10241-10259 (2009). + LOW /5.4E37 -5.96 66783/ + TROE /0.35 1E-30 1E30 1E30/ +NH2OH+H=HNOH+H2 .4800E+09 1.500 6249.0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +NH2OH+H=H2NO+H2 .2400E+09 1.500 5067.0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +NH2OH+O=HNOH+OH .3300E+09 1.500 3865.0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +NH2OH+O=H2NO+OH .1700E+09 1.500 3010.0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +NH2OH+OH=HNOH+H2O .1500E+05 2.610 -3537.0 !\AUTHOR: AS !\REF: SJ Klippenstein et al J Phys Chem A 113 10241-10259 (2009). +NH2OH+OH=H2NO+H2O .1500E+06 2.280 -1296.0 !\AUTHOR: AS !\REF: SJ Klippenstein et al J Phys Chem A 113 10241-10259 (2009). +NH2OH+NH2=HNOH+NH3 .1100E+00 4.000 -97.0 !\AUTHOR: AS !\REF: SJ Klippenstein et al J Phys Chem A 113 10241-10259 (2009). +NH2OH+NH2=H2NO+NH3 .9500E+01 3.420 -1013.0 !\AUTHOR: AS !\REF: SJ Klippenstein et al J Phys Chem A 113 10241-10259 (2009). +NH2OH+NH=HNOH+NH2 .2900E-02 4.400 1564.0 !\AUTHOR: AS !\REF: SJ Klippenstein et al J Phys Chem A 113 10241-10259 (2009). +NH2OH+NH=H2NO+NH2 .1500E-02 4.600 2424.0 !\AUTHOR: AS !\REF: SJ Klippenstein et al J Phys Chem A 113 10241-10259 (2009). +NH2OH+HO2=HNOH+H2O2 .2900E+05 2.690 9557.0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +NH2OH+HO2=H2NO+H2O2 .1400E+05 2.690 6418.0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +HNOH+M=HNO+H+M .2000E+25 -2.840 58934.0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +HNOH+O2=HNO+HO2 .3000E+13 0.000 25000.0 !\AUTHOR: AS !\REF: Skreiberg, O., Kilpinen, P., & Glarborg, P. (2004). Combustion and Flame, 136(4), 501-518. !\COMMENT: +HNOH+H=NH2+OH .4000E+14 .000 .0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +HNOH+H=HNO+H2 .4800E+09 1.500 378.0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +HNOH+O=HNO+OH .7000E+14 .000 .0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: + DUPLICATE +HNOH+O=HNO+OH .3300E+09 1.500 -358.0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: + DUPLICATE +HNOH+OH=HNO+H2O .2400E+07 2.000 -1192.0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +HNOH+HO2=HNO+H2O2 .2900E+05 2.690 -1600.0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +HNOH+HO2=NH2OH+O2 .2900E+05 2.690 -1600.0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +HNOH+NH2=NH3+HNO .1800E+07 1.940 -1152.0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +HNOH+NH2=N2H3+OH .6700E+07 1.820 715.3 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +HNOH+NH2=H2NN+H2O .4600E+20 -1.940 1927.4 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +HNOH+NO2=HONO+HNO .6000E+12 .000 2000.0 !\AUTHOR: AS !\REF: Skreiberg, O., Kilpinen, P., & Glarborg, P. (2004). Combustion and Flame, 136(4), 501-518. !\COMMENT: +NH2+NO2=H2NO+NO .8600E+12 0.110 -1186.0 !\AUTHOR: AS !\REF: Glarborg, P. et al. Progr Energy Combust Sci, 67, 31-68. (2018) !\COMMENT: +NH2+NO2=N2O+H2O .2200E+12 0.110 -1186.0 !\AUTHOR: AS !\REF: Glarborg, P. et al. Progr Energy Combust Sci, 67, 31-68. (2018) !\COMMENT: +NH2+NO=N2+H2O .2600E+20 -2.369 870.0 !\AUTHOR: AS !\REF: Song, S., et al. Int Jour Chem Kinet, 33(11), 715-721. (2001) !\COMMENT: +NH2+NO=NNH+OH .4300E+11 .294 -866.0 !\AUTHOR: AS !\REF: Song, S., et al. Int Jour Chem Kinet, 33(11), 715-721. (2001) !\COMMENT: +NH+H=N+H2 .3010E+14 .000 .0 !\AUTHOR: AS !\REF: Baulch, D. L., Bowman, C. T., et al. J Phys Chem Ref Data, 34(3), 757-1397 (2005). !\COMMENT: +NH+O=NO+H .3000E+14 .000 .0 !\AUTHOR: AS !\REF: Cohen, N.; Westberg, K.R. J. Phys. Chem. Ref. Data 20 1211 - 1311 (1991) !\COMMENT: +NH+OH=HNO+H .2000E+14 .0 .0 !\AUTHOR: AS !\REF: Cohen, N.; Westberg, K.R. J. Phys. Chem. Ref. Data 20 1211 - 1311 (1991) !\COMMENT: +NH+OH=N+H2O .2000E+10 1.200 .0 !\AUTHOR: AS !\REF: Cohen, N.; Westberg, K.R. J. Phys. Chem. Ref. Data 20 1211 - 1311 (1991) !\COMMENT: +NH+O2=HNO+O .4050E+12 .090 10670.0 !\AUTHOR: AS !\REF: Talipov, M.R. et al. J. Phys. Chem. A 113 6468 - 6476 (2009) !\COMMENT: +NH+O2=NO+OH .2010E+16 -1.380 5670.0 !\AUTHOR: AS !\REF: Talipov, M.R. et al. J. Phys. Chem. A 113 6468 - 6476 (2009) !\COMMENT: +NH+N=N2+H .6410E+12 .510 20.0 !\AUTHOR: AS !\REF: Caridade, P.JSB.; Rodrigues, S.PJ.; Sousa, F.; Varandas, A.JC. J. Phys. Chem. A 109 (2005) !\COMMENT: +NH+NO=N2O+H .5328E+13 .026 -2893.9 !\AUTHOR: AS !\REF: Haworth, N.L. et al. J. Phys. Chem. A 107 6792 - 6803 (2003) !\COMMENT: +NH+NO=N2+OH .3635E+11 .361 -2844.3 !\AUTHOR: AS !\REF: Haworth, N.L. et al. J. Phys. Chem. A 107 6792 - 6803 (2003) !\COMMENT: +NH+NO2=N2O+OH .4100E+13 0.000 .0 !\AUTHOR: AS !\REF: Harrison JA Whyte AR Phillips LF CPL 129:346 1986 !\COMMENT: +NH+NO2=HNO+NO .5900E+13 0.000 .0 !\AUTHOR: AS !\REF: Harrison JA Whyte AR Phillips LF CPL 129:346 1986 !\COMMENT: +! +! Thermal NOx +! +N+OH=NO+H .2830E+14 .000 .0 !\AUTHOR: AS !\REF: Baulch, DL et al. J. Phys. Chem. Ref. Data 23 847-1033 (1994) !\COMMENT: +N+O2=NO+O .9027E+10 1.000 6500.0 !\AUTHOR: AS !\REF: Baulch, DL et al. J. Phys. Chem. Ref. Data 23 847-1033 (1994) !\COMMENT: +N+NO=O+N2 .4280E+14 .000 1570.0 !\AUTHOR: AS !\REF: Baulch, DL et al. J. Phys. Chem. Ref. Data 23 847-1033 (1994) !\COMMENT: +! +! N2Hx +! +N2H4=H2NN+H2 .5300E+40 -8.35 69306.6 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +PLOG / +1.0000000E-001 .4000E+45 -9.85 71353.2 / +PLOG / +1.0000000E+000 .5300E+40 -8.35 69306.6 / +PLOG / +1.0000000E+001 .2500E+40 -8.19 69664.2 / +N2H4+H=N2H3+H2 .9600E+09 1.50 4838.3 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +N2H4+O=N2H3+OH .6700E+09 1.50 2851.3 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +N2H4+O=N2H2+H2O .8490E+14 .000 1200.0 !\AUTHOR: AS !\REF: Gehring, M.; Hoyermann, K.; Wagner, H.G.; Wolfrum, J. Ber. Bunsenges. Phys. Chem. 73 (1969) !\COMMENT: T = 243-463 K +N2H4+OH=N2H3+H2O .1300E+14 .000 -318.0 !\AUTHOR: AS !\REF: Vaghjiani, GL Int. J. Chem. Kinet. 33(6), 354-362 (2001) !\COMMENT: T = 232Ð637 K +N2H4+NH2=N2H3+NH3 .3700E+07 1.940 1630.0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +N2H4+NO=N2H3+HNO .6000E+02 3.160 30845.0 !\AUTHOR: AS !\REF: Raghunath, P., Lin, Y. H., & Lin, M. C. Comput Theor Chem, 1046, 73-80 (2014). !\COMMENT: +N2H4+NO2=N2H3+HONO .8200E+02 3.130 8860.0 !\AUTHOR: AS !\REF: Raghunath, P., Lin, Y. H., & Lin, M. C. Comput Theor Chem, 1046, 73-80 (2014). !\COMMENT: +N2H4+NO2=N2H3+HNO2 .2400E-01 4.140 7946.0 !\AUTHOR: AS !\REF: Raghunath, P., Lin, Y. H., & Lin, M. C. Comput Theor Chem, 1046, 73-80 (2014). !\COMMENT: +N2H3=N2H2+H .3600E+48 -10.380 68973.8 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +PLOG / +1.0000000E-001 .2300E+44 -9.550 64435.8 / +PLOG / +1.0000000E+000 .3600E+48 -10.380 68973.8 / +PLOG / +1.0000000E+001 .1800E+46 -9.390 70105.8 / +N2H3+H=N2H2+H2 .2400E+09 1.500 .0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +N2H3+O=NH2+HNO .3000E+14 .000 .0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +N2H3+O=N2H2+OH .1700E+09 1.500 -645.5 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +N2H3+OH=N2H2+H2O .1200E+07 2.000 -1191.6 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +N2H3+OH=H2NN+H2O .3000E+14 .000 .0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +N2H3+NH2=N2H2+NH3 .9200E+06 1.940 -1152.5 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +N2H3+NH2=H2NN+NH3 .3000E+14 .000 .0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +N2H3+HO2=N2H2+H2O2 .1400E+05 2.690 -1599.5 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +N2H3+HO2=N2H4+O2 .9200E+06 1.940 2126.1 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +N2H2=NNH+H .1800E+41 -8.410 73353.0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: N2 as bath gas +PLOG / +1.0000000E-001 .5600E+37 -7.750 70215.0 / +PLOG / +1.0000000E+000 .1800E+41 -8.410 73353.0 / +PLOG / +1.0000000E+001 .3100E+42 -8.420 76004.2 / +DUPLICATE +N2H2=NNH+H .2600E+41 -8.530 72886.2 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: N2 as bath gas +PLOG / +1.0000000E-001 .1600E+38 -7.940 70721.5 / +PLOG / +1.0000000E+000 .2600E+41 -8.530 72886.2 / +PLOG / +1.0000000E+001 .1300E+45 -9.220 77036.9 / +DUPLICATE +N2H2+H=NNH+H2 .4121E+10 1.289 -224.1 !\AUTHOR: AS !\REF: Zheng, J., et al. J Chem Phys, 136(18), 184310 (2012). !\COMMENT: +N2H2+O=NNH+OH .3300E+09 1.500 496.5 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: N2 as bath gas +N2H2+OH=NNH+H2O .5923E+02 3.400 -1363.7 !\AUTHOR: AS !\REF: Linder, D.P.; Duan, X.; Page, M. J. Chem. Phys. 104 6298 - 6306 (1996) !\COMMENT: +N2H2+NO=N2O+NH2 .4000E+13 .000 11916.0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +N2H2+NH=NNH+NH2 .2400E+07 2.000 -1191.6 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +N2H2+NH2=NNH+NH3 .8800E-01 4.050 -1610.0 ! \AUTHOR: AS !\REF: Linder, D.P.; Duan, X.; Page, M. J. Chem. Phys. 104 6298 - 6306 (1996) !\COMMENT: +N2H2=H2NN .2000E+42 -9.380 68452.2 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +PLOG / +1.0000000E-001 .9200E+39 -9.010 67726.9 / +PLOG / +1.0000000E+000 .2000E+42 -9.380 68452.2 / +PLOG / +1.0000000E+001 .1300E+46 -10.130 70757.1 / +H2NN=NNH+H .9600E+36 -7.570 54841.2 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +PLOG / +1.0000000E-001 .5900E+33 -6.990 51791.2 / +PLOG / +1.0000000E+000 .9600E+36 -7.570 54841.2 / +PLOG / +1.0000000E+001 .5000E+37 -7.430 57295.1 / +DUPLICATE +H2NN=NNH+H .3200E+32 -6.220 52317.7 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +PLOG / +1.0000000E-001 .7200E+29 -7.770 50757.9 / +PLOG / +1.0000000E+000 .3200E+32 -6.220 52317.7 / +PLOG / +1.0000000E+001 .5100E+34 -6.520 54215.3 / +DUPLICATE +! +! H2NN +! +H2NN+O2=NH2+NO2 .1500E+13 .000 5961.0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +H2NN+H=N2H2+H .1800E+11 .970 4470.8 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +H2NN+H=NNH+H2 .4800E+09 1.500 -894.2 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +H2NN+O=NH2+NO .3200E+10 1.030 2702.3 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +H2NN+O=OH+NNH .3300E+09 1.500 -894.2 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +H2NN+OH=NNH+H2O .2400E+07 2.000 -1192.2 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +H2NN+NH2=NH3+NNH .1800E+07 1.940 -1152.5 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +H2NN+HO2=NNH+H2O2 .2900E+05 2.690 -1599.5 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +NNH=N2+H .1000E+10 .000 .0 !\AUTHOR: AS !\REF: SJ Klippenstein LB Harding P Glarborg JA Miller CF 158 (2011) 774-789. !\COMMENT: +NNH+H=N2+H2 .2400E+09 1.500 -893.7 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +NNH+O=N2O+H .1900E+15 -0.274 -22.0 !\AUTHOR: AS !\REF: SJ Klippenstein LB Harding P Glarborg JA Miller CF 158 (2011) 774-789. !\COMMENT: +NNH+O=NH+NO .5200E+12 .388 -409.0 !\AUTHOR: AS !\REF: SJ Klippenstein LB Harding P Glarborg JA Miller CF 158 (2011) 774-789. !\COMMENT: +NNH+O=N2+OH .1200E+14 .145 -217.0 !\AUTHOR: AS !\REF: SJ Klippenstein LB Harding P Glarborg JA Miller CF 158 (2011) 774-789. !\COMMENT: +NNH+OH=N2+H2O .5000E+14 .000 .0 !\AUTHOR: AS !\REF: SJ Klippenstein LB Harding P Glarborg JA Miller CF 158 (2011) 774-789. !\COMMENT: Ref 92 +NNH+O2=N2+HO2 .5600E+15 -0.385 -13.0 !\AUTHOR: AS !\REF: SJ Klippenstein LB Harding P Glarborg JA Miller CF 158 (2011) 774-789. !\COMMENT: +NNH+NH2=N2+NH3 .9200E+06 1.940 -1151.9 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +NNH+HO2=N2+H2O2 .1400E+05 2.690 -1599.5 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +NNH+NO=N2+HNO .5000E+14 .000 .0 !\AUTHOR: AS !\REF: Skreiberg, O., Kilpinen, P., & Glarborg, P. (2004). Combustion and Flame, 136(4), 501-518. !\COMMENT: +NO+HO2=NO2+OH .2110E+13 .000 -480.0 !\AUTHOR: AS !\REF: Howard, C.J. J. Am. Chem. Soc. 102 (1980) !\COMMENT: +NO+O(+M)=NO2(+M) .1300E+16 -0.750 .0 !\AUTHOR: AS !\REF: Allen MT Yetter RA Dryer FL Combust Flame 109 449 (1997) !\COMMENT: + LOW / .472E25 -2.87 1550./ ! N2 + TROE /0.750 1E03 1E05 1E30/ +N2/ 1.70/O2/ 1.50/H2O/ 10.00/ +OH+NO=HONO .3090E+24 -4.170 1621.0 !\AUTHOR: AS !\REF: Chen, X., Fuller, M. E., & Goldsmith, C. F. Reac Chem Eng, 4(2), 323-333 (2019). !\COMMENT: +PLOG / 0.010 .5020E+22 -4.240 898.9 / +PLOG / 0.100 .5310E+23 -4.240 1184.0 / +PLOG / 0.316 .1380E+24 -4.220 1376.0 / +PLOG / 1.000 .3090E+24 -4.170 1621.0 / +PLOG / 3.160 .5450E+24 -4.090 1911.0 / +PLOG / 10.00 .6350E+24 -3.970 2222.0 / +PLOG / 31.60 .3680E+24 -3.750 2501.0 / +PLOG / 100.0 .7290E+23 -3.410 2660.0 / +HNO=H+NO .18259e+21 -3.008 47880.0 !\AUTHOR: AS !\REF: Stagni, A. et al. React. Chem. Eng. (submitted) (2020). !\COMMENT: T = 500-2500 K fitted +PLOG / 0.100 .20121e+20 -3.021 47792.0 / +PLOG / 1.000 .18259e+21 -3.008 47880.0 / +PLOG / 10.00 .12762e+22 -2.959 48100.0 / +PLOG / 100.0 .56445e+22 -2.855 48459.0 / +PLOG / 1000. .97111e+22 -2.642 48940.0 / +HNO+H=NO+H2 .9680E+12 .620 360.0 !\AUTHOR: AS !\REF: Nguyen, H.MT. et al. Chem. Phys. Lett. 388 94-99 (2004) !\COMMENT: CVT method +HNO+O=NO+OH .2290E+14 .000 .0 !\AUTHOR: AS !\REF: Inomata, S.; Washida, N. J. Phys. Chem. A 103 5023 - 5031 (1999) !\COMMENT: +HNO+OH=H+HONO .1480E+04 2.720 4554.0 !\AUTHOR: AS !\REF: Chen, X., Fuller, M. E., & Goldsmith, C. F. Reac Chem Eng, 4(2), 323-333 (2019). !\COMMENT: +PLOG / 0.010 .1060E+04 2.760 4439.0 / +PLOG / 0.100 .1090E+04 2.750 4450.0 / +PLOG / 0.316 .1180E+04 2.740 4476.0 / +PLOG / 1.000 .1480E+04 2.720 4554.0 / +PLOG / 3.160 .2710E+04 2.640 4768.0 / +PLOG / 10.00 .9670E+04 2.490 5253.0 / +PLOG / 31.60 .5310E+05 2.290 6063.0 / +PLOG / 100.0 .1030E+06 2.240 6951.0 / +HNO+OH=NO+H2O .6300E+11 .390 3782.0 !\AUTHOR: AS !\REF: Chen, X., Fuller, M. E., & Goldsmith, C. F. Reac Chem Eng, 4(2), 323-333 (2019). !\COMMENT: +PLOG / 0.010 .5820E+11 .400 3762.0 / +PLOG / 0.100 .5850E+11 .400 3763.0 / +PLOG / 0.316 .5920E+11 .400 3764.0 / +PLOG / 1.000 .6300E+11 .390 3782.0 / +PLOG / 3.160 .9530E+11 .340 3931.0 / +PLOG / 10.00 .2600E+12 .230 4413.0 / +PLOG / 31.60 .3830E+12 .200 5099.0 / +PLOG / 100.0 .4180E+11 .510 5532.0 / +HNO+O2=NO+HO2 .2000E+14 .000 14896.0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +HNO+NH2=NO+NH3 .3670E+08 1.63 -1250.0 !\AUTHOR: AS !\REF: Mebel, A.M. et al. J. Phys. Chem. 100 7517 - 7525 (1996) !\COMMENT: +HNO+NO=N2O+OH .8510E+13 .000 29610.0 !\AUTHOR: AS !\REF: Diau, E.W.; Halbgewachs, M.J.; Smith, A.R.; Lin, M.C. Int. J. Chem. Kinet. 27 867-881 (1995) !\COMMENT: +HNO+NO2=HONO+NO .4420E+05 2.640 4041.6 !\AUTHOR: AS !\REF: Mebel, A.M.; Lin, M.C.; Morokuma, K. Int. J. Chem. Kinet. 30 729-736 (1998) !\COMMENT: +HNO+NO2=HNO2+NO .6030E+12 .000 1990.0 !\AUTHOR: AS !\REF: Tsang, W.; Herron, J.T. J. Phys. Chem. Ref. Data 20 609-663 (1991) !\COMMENT: +HNO+HNO=N2O+H2O .8430E+09 .000 3100.0 !\AUTHOR: AS !\REF: Tsang, W.; Herron, J.T. J. Phys. Chem. Ref. Data 20 609-663 (1991) !\COMMENT: +HNO+HO2=HNO2+OH .2000E+04 2.360 8980.0 !\AUTHOR: AS !\REF: Mousavipour, S. H., & Asemani, S. S. J Phys Chem A, 119(22), 5553-5565 (2015). !\COMMENT: +H+HONO=H2+NO2 .1890E+04 2.830 1422.7 !\AUTHOR: AS !\REF: Chen, X., Fuller, M. E., & Goldsmith, C. F. Reac Chem Eng, 4(2), 323-333 (2019). !\COMMENT: +H+HNO2=H2+NO2 .2330E+05 2.770 -2021.9 !\AUTHOR: AS !\REF: Chen, X., Fuller, M. E., & Goldsmith, C. F. Reac Chem Eng, 4(2), 323-333 (2019). !\COMMENT: +H+HONO=NO+H2O .4300E+10 .980 4070.0 !\AUTHOR: AS !\REF: Chen, X., Fuller, M. E., & Goldsmith, C. F. Reac Chem Eng, 4(2), 323-333 (2019). !\COMMENT: +PLOG / 0.010 .3910E+10 .990 4049.0 / +PLOG / 0.100 .3930E+10 .990 4049.0 / +PLOG / 0.316 .3970E+10 .990 4051.0 / +PLOG / 1.000 .4300E+10 .980 4070.0 / +PLOG / 3.160 .7040E+10 .920 4225.0 / +PLOG / 10.00 .2600E+11 .760 4736.0 / +PLOG / 31.60 .7910E+11 .640 5519.0 / +PLOG / 100.0 .2790E+11 .800 6146.0 / +HONO+O=NO2+OH .1210E+14 .000 5960.0 !\AUTHOR: AS !\REF: Tsang, W.; Herron, J.T. J. Phys. Chem. Ref. Data 20 609-663 (1991) !\COMMENT: +HONO+OH=NO2+H2O .1700E+13 .000 -520.0 !\AUTHOR: AS !\REF: Burkholder JB Mellouki A Talukdar R Ravishankara AR IJCK 24:711 1992 !\COMMENT: +HONO+NH=NH2+NO2 .1000E+14 .000 .0 !\AUTHOR: AS !\REF: Park, J., & Lin, M. C. (1997). The Journal of Physical Chemistry A, 101(14), 2643-2647 !\COMMENT: +HONO+NH2=NH3+NO2 .3170E+03 2.830 -3570.0 !\AUTHOR: AS !\REF: S. Xu, M.C. Lin, Int J Chem Kinet 41: 667-677, 2009 !\COMMENT: +HONO+HONO=>NO+NO2+H2O .3490E+00 3.640 12138.6 !\AUTHOR: AS !\REF: Mebel, A.M.; Lin, M.C.; Melius, C.F. J. Phys. Chem. A 102 1803-1807 (1998) !\COMMENT: +H2NO=HNOH .1300E+28 -4.990 43982.2 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +PLOG / 0.1 .8200E+26 -4.940 43793.5 / +PLOG / 1.0 .1300E+28 -4.990 43982.2 / +PLOG / 10.0 .2600E+29 -5.060 44767.1 / +H2NO+M=HNO+H+M .2800E+25 -2.830 64974.9 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +H2O / 10.0 / +H2NO+H=HNO+H2 .4800E+09 1.500 1559.8 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +H2NO+H=NH2+OH .4000E+14 .000 .0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +H2NO+O=HNO+OH .3300E+09 1.500 486.8 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +H2NO+OH=HNO+H2O .2400E+07 2.000 1192.2 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +H2NO+NO=HNO+HNO .2000E+05 2.000 13000.0 !\AUTHOR: AS !\REF: A El Bakali L Pillier P Desgroux B Lefort L Gasnot JF Pauwels I Da Costa Fuel 85 896-909 (2006) !\COMMENT: +H2NO+NO2=HONO+HNO .6000E+12 .000 2000.0 !\AUTHOR: AS !\REF: Glarborg, P., Kristensen, P. G., et al. Energy & Fuels, 14(4), 828-838 (2000) !\COMMENT: +H2NO+NH2=HNO+NH3 .1800E+07 1.940 -580.0 !\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +H2NO+O2=HNO+HO2 .2300E+03 2.994 16500.0 !\AUTHOR: AS !\REF: Glarborg, P., Miller, J. A., Ruscic, B., & Klippenstein, S. J. (2018). Progr Energy Combust Sci, 67, 31-68 !\COMMENT: Glarborg Eact = 16500 cal/mol - Original Eact is 18900 +H2NO+HO2=HNO+H2O2 .3360E+06 2.000 -1434.0 !\AUTHOR: AS !\REF: Estimated via rate rules from O2 abstraction on H2NO !\COMMENT: Polimi recalculated +! +! NO3 +! +NO3+H=NO2+OH .6610E+14 .000 .0 !\AUTHOR: AS !\REF: He, Y.; Liu, X.; Lin, M.C.; Melius, C.F. Int. J. Chem. Kinet. 25 845 - 863 (1993) !\COMMENT: T = 623 - 773 K +NO3+O=NO2+O2 .1024E+14 .000 .0 !\AUTHOR: AS !\REF: Atkinson, R.; Baulch, D.L.; et al. Atmos. Chem. Phys. 4 1461 - 1738 (2004) !\COMMENT: +NO3+OH=NO2+HO2 .1400E+14 .000 .0 !\AUTHOR: AS !\REF: He, Y.; Liu, X.; Lin, M.C.; Melius, C.F. Int. J. Chem. Kinet. 25 845 - 863 (1993) !\COMMENT: T = 623 - 773 K +NO3+HO2=>NO2+O2+OH .1510E+13 .000 .0 !\AUTHOR: AS !\REF: Becker, E.; Rahman, M.M.; Schindler, R.N. Ber. Bunsenges. Phys. Chem. 96 776 - 783 (1992) !\COMMENT: +NO3+NO2=>NO+NO2+O2 .5730E+11 .000 2800.0 !\AUTHOR: AS !\REF: Cantrell, C.A.; Davidson, J.A.; McDaniel, A.H.; Shetter, R.E.; Calvert, J.G.; J. Chem. Phys. 88 (1988) !\COMMENT: T = 298 - 396 K +NO3=NO+O2 .2500E+07 .000 12120.0 !\AUTHOR: AS !\REF: Johnston, H.S.; Cantrell, C.A.; Calvert, J.G. J. Geophys. Res. 91 (1986) !\COMMENT: T = 298 - 934 K +NO3+NO3=>NO2+NO2+O2 .5120E+12 .000 4870.0 !\AUTHOR: AS !\REF: Johnston, H.S.; Cantrell, C.A.; Calvert, J.G. J. Geophys. Res. 91 (1986) !\COMMENT: T = 298 - 329 K +! +! NO2 +! +H+NO2=OH+NO .8850E+14 0.000 .0 !\AUTHOR: AS !\REF: Su, M.-C. et al. J. Phys. Chem. A 106 8261-8270 (2002) !\COMMENT: +NO2+O=NO+O2 .3920E+13 .000 -238.0 !\AUTHOR: AS !\REF: Tsang, W.; Herron, J.T. J. Phys. Chem. Ref. Data 20 609-663 (1991) !\COMMENT: +NO2+O(+M)=NO3(+M) .3500E+13 .240 .0 !\AUTHOR: AS !\REF: Hahn, J.; Luther, K.; Troe, J. Phys. Chem. Chem. Phys. 5098 - 5104 (2000) !\COMMENT: + LOW /2.5E20 -1.50 0/ + TROE /0.71 1E-30 1700 1E30/ +NO2+HO2=HONO+O2 .1900E+01 3.320 3044.0 !\AUTHOR: AS !\REF: CL Rasmussen J Hansen P Marshall P Glarborg IJCK 40, 454-480 (2008) !\COMMENT: +NO2+HO2=HNO2+O2 .1900E+02 3.260 4983.0 !\AUTHOR: AS !\REF: CL Rasmussen J Hansen P Marshall P Glarborg IJCK 40, 454-480 (2008) !\COMMENT: +NO2+NO2=>NO+NO+O2 .1630E+13 .000 26030.0 !\AUTHOR: AS !\REF: Tsang, W.; Herron, J.T. J. Phys. Chem. Ref. Data 20 609-663 (1991) !\COMMENT: +NO2+NO2=NO3+NO .1000E+14 .000 25800.0 !\AUTHOR: AS !\REF: Rohrig, M.; Petersen, E.L.; Davidson, D.F.; Hanson, R.K. !\COMMENT: +N2O(+M)=N2+O(+M) .9900E+11 .000 57901.0 !\AUTHOR: AS !\REF: Baulch, D. L., Bowman, C. T., et al. J Phys Chem Ref Data, 34(3), 757-1397 (2005). !\COMMENT: + LOW/ .6020E+15 0.000 57444.0 / + N2 /1.7 / O2 /1.4 / H2O /12. / +N2O+H=N2+OH .2530E+11 .00 4550.0 !\AUTHOR: AS !\REF: Powell, O.A., et al. Combust Sci Technology, 182(3), 252-283. (2010) !\COMMENT: Modified Baulch rate + DUPLICATE ! +N2O+H=N2+OH .5000E+15 .00 18100.0 !\AUTHOR: AS !\REF: Powell, O.A., et al. Combust Sci Technology, 182(3), 252-283. (2010) !\COMMENT: Modified Baulch rate + DUPLICATE ! +N2O+O=NO+NO .6620E+14 .000 26630.0 !\AUTHOR: AS !\REF: Tsang, W.; Herron, J.T. J. Phys. Chem. Ref. Data 20 609-663 (1991) !\COMMENT: +N2O+O=N2+O2 .1020E+15 .000 28020.0 !\AUTHOR: AS !\REF: Tsang, W.; Herron, J.T. J. Phys. Chem. Ref. Data 20 609-663 (1991) !\COMMENT: +N2O+OH=N2+HO2 .1000E-01 4.720 36560.0 !\AUTHOR: AS !\REF: Mebel, A.M.; Lin, M.C.; Morokuma, K.; Melius, C.F. Int. J. Chem. Kinet. 28 693-703 (1996) !\COMMENT: +N2O+NO=N2+NO2 .5250E+06 2.230 46300.0 !\AUTHOR: AS !\REF: Mebel, A.M.; Lin, M.C.; Morokuma, K.; Melius, C.F. Int. J. Chem. Kinet. 28 693-703 (1996) !\COMMENT: +HNO2+O=NO2+OH .1700E+09 1.500 2365.4 !\AUTHOR: AS !\REF: Dean, A. M., J. W. Bozzelli, and W. C. Gardiner. WC Gardiner, Jr., Ed (2000). !\COMMENT: +HNO2+OH=NO2+H2O .1200E+07 2.000 -794.8 !\AUTHOR: AS !\REF: Dean, A. M., J. W. Bozzelli, and W. C. Gardiner. WC Gardiner, Jr., Ed (2000). !\COMMENT: +HNO2=HONO .3260E+35 -7.970 45490.0 !\AUTHOR: AS !\REF: Chen, X., Fuller, M. E., & Goldsmith, C. F. Reac Chem Eng, 4(2), 323-333 (2019). !\COMMENT: +PLOG / 0.010 .3260e+35 -7.970 45490.0 / +PLOG / 0.100 .2770e+34 -7.580 45250.0 / +PLOG / 0.316 .1930e+33 -7.180 44940.0 / +PLOG / 1.000 .1560e+31 -6.470 44360.0 / +PLOG / 3.160 .2170e+28 -5.490 43670.0 / +PLOG / 10.00 .4680e+25 -4.520 43320.0 / +PLOG / 31.60 .1140e+24 -3.810 43640.0 / +PLOG / 100.0 .2030e+23 -3.350 44430.0 / +HNO2+NH2=NH3+NO2 .2800E+11 .000 -5760.0 !\AUTHOR: AS !\REF: Thaxton, A.G.; Hsu, C.C.; Lin, M.C. Int. J. Chem. Kinet. 29 245-251 (1997) !\COMMENT: +H+HNO2=NO+H2O .3380E+10 1.070 5565.0 !\AUTHOR: AS !\REF: Chen, X., Fuller, M. E., & Goldsmith, C. F. Reac Chem Eng, 4(2), 323-333 (2019). !\COMMENT: +PLOG / 0.010 .3390E+10 1.070 5568.0 / +PLOG / 0.100 .3390E+10 1.070 5567.0 / +PLOG / 0.316 .3390E+10 1.070 5567.0 / +PLOG / 1.000 .3380E+10 1.070 5565.0 / +PLOG / 3.160 .3380E+10 1.070 5560.0 / +PLOG / 10.00 .3400E+10 1.070 5546.0 / +PLOG / 31.60 .4320E+10 1.040 5591.0 / +PLOG / 100.0 .1270E+11 0.910 5968.0 / +H+HNO2=HNO+OH .3650E+08 1.780 5570.0 !\AUTHOR: AS !\REF: Chen, X., Fuller, M. E., & Goldsmith, C. F. Reac Chem Eng, 4(2), 323-333 (2019). !\COMMENT: +PLOG / 0.010 .3610E+08 1.780 5565.0 / +PLOG / 0.100 .3610E+08 1.780 5566.0 / +PLOG / 0.316 .3620E+08 1.780 5567.0 / +PLOG / 1.000 .3650E+08 1.780 5570.0 / +PLOG / 3.160 .3740E+08 1.770 5580.0 / +PLOG / 10.00 .4140E+08 1.760 5617.0 / +PLOG / 31.60 .6230E+08 1.710 5770.0 / +PLOG / 100.0 .1810E+09 1.590 6233.0 / +OH+NO=HNO2 .1430E+19 -3.030 3899.0 !\AUTHOR: AS !\REF: Chen, X., Fuller, M. E., & Goldsmith, C. F. Reac Chem Eng, 4(2), 323-333 (2019). !\COMMENT: +PLOG / 0.010 .3160E+19 -3.740 1405.0 / +PLOG / 0.100 .3030E+19 -3.430 2618.0 / +PLOG / 0.316 .2230E+19 -3.240 3248.0 / +PLOG / 1.000 .1430E+19 -3.030 3899.0 / +PLOG / 3.160 .6910E+18 -2.790 4535.0 / +PLOG / 10.00 .2040E+18 -2.490 5125.0 / +PLOG / 31.60 .3070E+17 -2.120 5648.0 / +PLOG / 100.0 .1950E+16 -1.640 6099.0 / +OH+NO2(+M)=HONO2(+M) .3000E+14 .000 .0 !\AUTHOR: AS !\REF: Troe, J. Int Journ Chem Kinet, 33(12), 878-889 (2001). !\COMMENT: + LOW/ .2938E+26 -3.0 0 / +TROE/ 0.4E+00 .1E-29 .1E+31 .1E+31/ +HONO2+OH=NO3+H2O .9040E+10 .000 -1240.0 !\AUTHOR: AS !\REF: Fritz, B.; Lorenz, K.; et al. Phys. Chem. Behav. Atmos. Pollut. Proc. Eur. Symp. (1982) !\COMMENT: +! +!\END_KINETICS_MODULE: \NOx_H2O2_HT +!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +!\END_KINETICS_INPUT +!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +END \ No newline at end of file diff --git a/Mechanisms/POLIMI2020/mechanism.yaml b/Mechanisms/POLIMI2020/mechanism.yaml new file mode 100644 index 000000000..5e599e8b3 --- /dev/null +++ b/Mechanisms/POLIMI2020/mechanism.yaml @@ -0,0 +1,1664 @@ +description: |- + A. Stagni, C. Cavallotti, S. Arunthanayothin, Y. Song, + O. Herbinet, F. Battin-Leclerc, T. Faravelli + "An experimental, theoretical and kinetic-modeling study of the gas-phase oxidation of ammonia" + Reaction Chemistry and Engineering (submitted) (2020). + + Kinetic mechanism of Ammonia pyrolysis and oxidation + + Submitted to Reaction Chemistry and Engineering (November 2019) + + CHEMKIN format + + + A. Stagni, C. Cavallotti, S. Arunthanayothin, Y. Song, + O. Herbinet, F. Battin-Leclerc, T. Faravelli + "An experimental, theoretical and kinetic-modeling study of the gas-phase oxidation of ammonia" + Reaction Chemistry and Engineering (submitted) (2020). + + Submitted to Reaction Chemistry and Engineering (November 2019) + + Thermodynamic properties + + CHEMKIN format + + VERSION: 17_03 + AUTHORS: C1-C3 Burcat + NOTE: SPECIES RE-ARRANGED AS THE SAME ORDER IN MECH + + VERSION: 17_05 + Following species are updated from ATcT's Database: + H H2 O O2 HE + OH H2O N2 HO2 HCO + H2O2 AR CO CO2 + +generator: ck2yaml +input-files: [mechanism.inp, therm.dat, tran.dat] +cantera-version: 3.0.0 +date: Wed, 20 Nov 2024 16:22:27 +0100 + +units: {length: cm, time: s, quantity: mol, activation-energy: cal/mol} + +phases: +- name: gas + thermo: ideal-gas + elements: [C, H, N, O, Ar, He] + species: [AR, N2, HE, H2, H, O2, O, H2O, OH, H2O2, HO2, NO, N2O, NO2, + HNO, HNO2, HONO, HONO2, N2H2, H2NN, NH2OH, HNOH, NH3, N2H4, N, NO3, + NH, NNH, NH2, H2NO, N2H3] + kinetics: gas + transport: mixture-averaged + state: {T: 300.0, P: 1 atm} + +species: +- name: AR + composition: {Ar: 1} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [2.49988611, 2.1303796e-07, 8.97320772e-10, -2.31395752e-12, 1.30201393e-15, + -745.354481, 4.38024367] + - [2.49989176, 1.56134837e-07, -7.76108557e-11, 1.52928085e-14, -1.05304493e-18, + -745.328403, 4.38029835] + note: |- + ATcT3E + [Ghobad] Ar ATcT ver. 1.122, DHf298 = 0.000 \B1 0.000 kJ/mol - fit MAR17 + transport: + model: gas + geometry: atom + well-depth: 136.5 + diameter: 3.33 +- name: N2 + composition: {N: 2} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [3.53603521, -1.58270944e-04, -4.26984251e-07, 2.3754259e-09, -1.39708206e-12, + -1047.49645, 2.94603724] + - [2.9380297, 1.4183803e-03, -5.03281045e-07, 8.07555464e-11, -4.76064275e-15, + -917.18099, 5.95521985] + note: |- + ATcT3E + [Ghobad] N2 ATcT ver. 1.122, DHf298 = 0.000 \B1 0.000 kJ/mol - fit MAR17 + transport: + model: gas + geometry: linear + well-depth: 97.53 + diameter: 3.621 + polarizability: 1.76 + rotational-relaxation: 4.0 +- name: HE + composition: {He: 1} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [2.49976293, 1.01013432e-06, -8.24578465e-10, -6.85983306e-13, 7.24751856e-16, + -745.340917, 0.929800315] + - [2.49985609, 2.19365392e-07, -1.07525085e-10, 2.07198041e-14, -1.39358612e-18, + -745.309155, 0.929535014] + note: |- + ATcT3E + ---------ARAMCO 2.0 ------------------- + [Ghobad] He ATcT ver. 1.122, DHf298 = 0.000 \B1 0.000 kJ/mol - fit MAR17 + transport: + model: gas + geometry: atom + well-depth: 10.2 + diameter: 2.576 +- name: H2 + composition: {H: 2} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [2.37694204, 7.73916922e-03, -1.88735073e-05, 1.95517114e-08, -7.17095663e-12, + -921.173081, 0.547184736] + - [2.90207649, 8.68992581e-04, -1.6586443e-07, 1.90851899e-11, -9.31121789e-16, + -797.948726, -0.84559132] + note: |- + ATcT3E + [Ghobad] H2 ATcT ver. 1.122, DHf298 = 0.000 \B1 0.000 kJ/mol - fit MAR17 + transport: + model: gas + geometry: linear + well-depth: 38.0 + diameter: 2.92 + polarizability: 0.79 + rotational-relaxation: 280.0 +- name: H + composition: {H: 1} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [2.49975925, 6.73824499e-07, 1.11807261e-09, -3.70192126e-12, 2.14233822e-15, + 2.54737665e+04, -0.445574009] + - [2.49985211, 2.34582548e-07, -1.16171641e-10, 2.25708298e-14, -1.52992005e-18, + 2.54738024e+04, -0.445864645] + note: |- + ATcT3E + [Ghobad] H ATcT ver. 1.122, DHf298 = 217.998 \B1 0.000 kJ/mol - fit MAR17 + transport: + model: gas + geometry: atom + well-depth: 145.0 + diameter: 2.05 +- name: O2 + composition: {O: 2} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [3.78498258, -3.02002233e-03, 9.92029171e-06, -9.77840434e-09, 3.28877702e-12, + -1064.13589, 3.64780709] + - [3.65980488, 6.59877372e-04, -1.44158172e-07, 2.14656037e-11, -1.36503784e-15, + -1216.03048, 3.42074148] + note: |- + ATcT3E + [Ghobad] O2 ATcT ver. 1.122, DHf298 = 0.000 \B1 0.000 kJ/mol - fit MAR17 + transport: + model: gas + geometry: linear + well-depth: 107.4 + diameter: 3.458 + polarizability: 1.6 + rotational-relaxation: 3.8 +- name: O + composition: {O: 1} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [3.15906526, -3.21509999e-03, 6.49255543e-06, -5.98755115e-09, 2.06876117e-12, + 2.91298453e+04, 2.09078344] + - [2.55160087, -3.83085457e-05, 8.43197478e-10, 4.01267136e-12, -4.17476574e-16, + 2.92287628e+04, 4.87617014] + note: |- + ATcT3E + [Ghobad] O ATcT ver. 1.122, DHf298 = 249.229 \B1 0.002 kJ/mol - fit MAR17 + transport: + model: gas + geometry: atom + well-depth: 80.0 + diameter: 2.75 +- name: H2O + composition: {H: 2, O: 1} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [4.20147551, -2.05583546e-03, 6.56547207e-06, -5.5290696e-09, 1.78282605e-12, + -3.02950066e+04, -0.860610906] + - [2.73117512, 2.95136995e-03, -8.35359785e-07, 1.26088593e-10, -8.40531676e-15, + -2.99169082e+04, 6.55183] + note: |- + ATcT3E + [Ghobad] H2O ATcT ver. 1.122, DHf298 = -241.833 \B1 0.027 kJ/mol - fit MAR17 + transport: + model: gas + geometry: nonlinear + well-depth: 572.4 + diameter: 2.605 + dipole: 1.844 + rotational-relaxation: 4.0 +- name: OH + composition: {H: 1, O: 1} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [3.97585165, -2.28555291e-03, 4.33442882e-06, -3.5992664e-09, 1.2670693e-12, + 3393.41137, -0.0355397262] + - [2.84581721, 1.09723818e-03, -2.89121101e-07, 4.0909991e-11, -2.31382258e-15, + 3717.0661, 5.80339915] + note: |- + ATcT3E + [Ghobad] OH ATcT ver. 1.122, DHf298 = 37.490 \B1 0.027 kJ/mol - fit MAR17 + transport: + model: gas + geometry: linear + well-depth: 80.0 + diameter: 2.75 +- name: H2O2 + composition: {H: 2, O: 2} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [4.2385416, -2.49610911e-04, 1.59857901e-05, -2.06919945e-08, 8.2976632e-12, + -1.76486003e+04, 3.58850097] + - [4.5401748, 4.15970971e-03, -1.30876777e-06, 2.00823615e-10, -1.15509243e-14, + -1.79514029e+04, 0.855881745] + note: |- + ATcT3E + [Ghobad] H2O2 ATcT ver. 1.122, DHf298 = -135.457 \B1 0.064 kJ/mol - fit MAR17 + transport: + model: gas + geometry: nonlinear + well-depth: 107.4 + diameter: 3.458 + rotational-relaxation: 3.8 +- name: HO2 + composition: {H: 1, O: 2} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [4.2625125, -4.45642032e-03, 2.05164934e-05, -2.35794011e-08, 9.05614257e-12, + 262.442356, 3.88223684] + - [4.1056401, 2.04046836e-03, -3.65877562e-07, 1.85973044e-11, 4.98818315e-16, + 43.2898769, 3.30808126] + note: |- + ATcT3E + [Ghobad] HO2 ATcT ver. 1.122, DHf298 = 12.26 \B1 0.16 kJ/mol - fit MAR17 + transport: + model: gas + geometry: nonlinear + well-depth: 107.4 + diameter: 3.458 + rotational-relaxation: 1.0 +- name: NO + composition: {N: 1, O: 1} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [4.21859896, -4.63988124e-03, 1.10443049e-05, -9.34055507e-09, 2.80554874e-12, + 9845.09964, 2.28061001] + - [3.26071234, 1.19101135e-03, -4.29122646e-07, 6.94481463e-11, -4.03295681e-15, + 9921.43132, 6.36900518] + note: |- + RUS 89 + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + NOx MODULE (from Burcat http://garfield.chem.elte.hu/Burcat/THERM.DAT) + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + E. Goos, A. Burcat and B. Ruscic http://garfield.chem.elte.hu/Burcat/THERM.DAT + transport: + model: gas + geometry: linear + well-depth: 97.5 + diameter: 3.621 + polarizability: 1.76 + rotational-relaxation: 4.0 +- name: N2O + composition: {N: 2, O: 1} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [2.2571502, 0.011304728, -1.3671319e-05, 9.6819803e-09, -2.9307182e-12, + 8741.7746, 10.757992] + - [4.8230729, 2.6270251e-03, -9.5850872e-07, 1.6000712e-10, -9.7752302e-15, + 8073.4047, -2.2017208] + note: |- + L 7/88 + E. Goos, A. Burcat and B. Ruscic http://garfield.chem.elte.hu/Burcat/THERM.DAT + transport: + model: gas + geometry: linear + well-depth: 232.4 + diameter: 3.828 + rotational-relaxation: 1.0 +- name: NO2 + composition: {N: 1, O: 2} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [3.9440312, -1.585429e-03, 1.6657812e-05, -2.0475426e-08, 7.8350564e-12, + 2896.618, 6.3119919] + - [4.884754, 2.1723955e-03, -8.2806909e-07, 1.574751e-10, -1.0510895e-14, + 2316.4982, -0.11741695] + note: |- + L 7/88 + E. Goos, A. Burcat and B. Ruscic http://garfield.chem.elte.hu/Burcat/THERM.DAT + transport: + model: gas + geometry: nonlinear + well-depth: 200.0 + diameter: 3.5 + rotational-relaxation: 1.0 +- name: HNO + composition: {H: 1, N: 1, O: 1} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [4.53525574, -5.68543377e-03, 1.8519854e-05, -1.71881225e-08, 5.55818157e-12, + 1.16183003e+04, 1.74315886] + - [3.16598124, 2.99958892e-03, -3.94376786e-07, -3.85344089e-11, 7.07602668e-15, + 1.17726311e+04, 7.64511172] + note: |- + ATcT/A + E. Goos, A. Burcat and B. Ruscic http://garfield.chem.elte.hu/Burcat/THERM.DAT + transport: + model: gas + geometry: nonlinear + well-depth: 116.7 + diameter: 3.492 + rotational-relaxation: 1.0 +- name: HNO2 + composition: {H: 1, N: 1, O: 2} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [4.03779347, -4.46123109e-03, 3.19440815e-05, -3.7935949e-08, 1.44570885e-11, + -6530.88236, 5.90620097] + - [4.66358504, 4.89854351e-03, -1.79694193e-06, 2.94420361e-10, -1.78235577e-14, + -7252.16334, -0.030605364] + note: |- + ATcT3E + Glarborg, P. et al. Progr Energy Combust Sci, 67, 31-68. (2018) + transport: + model: gas + geometry: nonlinear + well-depth: 200.0 + diameter: 3.5 + rotational-relaxation: 1.0 +- name: HONO + composition: {H: 1, N: 1, O: 2} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [3.16416438, 8.50517773e-03, 5.48561573e-07, -8.27656474e-09, 4.39957151e-12, + -1.07744086e+04, 10.0231941] + - [5.79144641, 3.64630732e-03, -1.29112765e-06, 2.06498233e-10, -1.22138679e-14, + -1.15974343e+04, -4.07145349] + note: |- + ATcT3E + Glarborg, P. et al. Progr Energy Combust Sci, 67, 31-68. (2018) + transport: + model: gas + geometry: nonlinear + well-depth: 200.0 + diameter: 3.5 + rotational-relaxation: 1.0 +- name: HONO2 + composition: {H: 1, N: 1, O: 3} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [1.69329154, 0.0190167702, -8.25176697e-06, -6.06113827e-09, 4.65236978e-12, + -1.74198909e+04, 17.1839838] + - [8.03098942, 4.46958589e-03, -1.72459491e-06, 2.91556153e-10, -1.80102702e-14, + -1.93138183e+04, -16.2616537] + note: |- + T 8/03 + HNO3 in Burcat database http://garfield.chem.elte.hu/Burcat/THERM.DAT + transport: + model: gas + geometry: nonlinear + well-depth: 300.0 + diameter: 3.5 + rotational-relaxation: 1.0 +- name: N2H2 + composition: {N: 2, H: 2} + thermo: + model: NASA7 + temperature-ranges: [300.0, 1380.0, 5000.0] + data: + - [2.55589425, 6.54339081e-03, -8.81947855e-07, -1.15971304e-09, 3.9744223e-13, + 2.41085081e+04, 9.80504705] + - [4.14686796, 4.81612315e-03, -1.62748817e-06, 2.50556098e-10, -1.44494188e-14, + 2.33444055e+04, 0.53412274] + note: |- + 2/13/19 + Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. + transport: + model: gas + geometry: nonlinear + well-depth: 71.4 + diameter: 3.798 + rotational-relaxation: 1.0 +- name: H2NN + composition: {N: 2, H: 2} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [4.53204001, -7.32418578e-03, 3.00803713e-05, -3.04000551e-08, 1.04700639e-11, + 3.49580003e+04, 1.51074195] + - [3.0590367, 6.18382347e-03, -2.22171165e-06, 3.58539206e-10, -2.14532905e-14, + 3.48530149e+04, 6.69893515] + note: |- + Isodiazene T 9/11 + Is 'N2H2 Isodiazene' in Burcat database + transport: + model: gas + geometry: nonlinear + well-depth: 71.4 + diameter: 3.798 + rotational-relaxation: 1.0 + note: = N2H2 +- name: NH2OH + composition: {N: 1, H: 3, O: 1} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [3.21016092, 6.19671676e-03, 1.10594948e-05, -1.96668262e-08, 8.8251659e-12, + -6581.48481, 7.93293571] + - [3.88112502, 8.15708448e-03, -2.82615576e-06, 4.37930933e-10, -2.52724604e-14, + -6860.18419, 3.79156136] + note: |- + ATcT/A + E. Goos, A. Burcat and B. Ruscic http://garfield.chem.elte.hu/Burcat/THERM.DAT + transport: + model: gas + geometry: nonlinear + well-depth: 116.7 + diameter: 3.492 + rotational-relaxation: 1.0 + note: = NHOH +- name: HNOH + composition: {H: 2, N: 1, O: 1} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [3.95608248, -3.0261102e-03, 2.56874396e-05, -3.1564512e-08, 1.24084574e-11, + 1.0919979e+04, 5.55950983] + - [3.98321933, 4.88846374e-03, -1.65086637e-06, 2.55371446e-10, -1.48308561e-14, + 1.05780106e+04, 3.62582838] + note: |- + trans & Equ T11/11 + E. Goos, A. Burcat and B. Ruscic http://garfield.chem.elte.hu/Burcat/THERM.DAT + transport: + model: gas + geometry: nonlinear + well-depth: 116.7 + diameter: 3.492 + rotational-relaxation: 1.0 + note: JAM +- name: NH3 + composition: {H: 3, N: 1} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 4000.0] + data: + - [4.14027871, -3.58489142e-03, 1.89475904e-05, -1.9883397e-08, 7.15267961e-12, + -6685.45158, -0.0166754883] + - [2.36074311, 6.31850146e-03, -2.28966806e-06, 4.11767411e-10, -2.90836787e-14, + -6415.96473, 8.02154329] + note: |- + ATcT3E + Glarborg, P. et al. Progr Energy Combust Sci, 67, 31-68. (2018) + transport: + model: gas + geometry: nonlinear + well-depth: 481.0 + diameter: 2.92 + dipole: 1.47 + rotational-relaxation: 10.0 +- name: N2H4 + composition: {N: 2, H: 4} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [3.83472149, -6.49129555e-04, 3.76848463e-05, -5.00709182e-08, 2.03362064e-11, + 1.00893925e+04, 5.7527203] + - [4.93957357, 8.75017187e-03, -2.99399058e-06, 4.67278418e-10, -2.73068599e-14, + 9282.65548, -2.69439772] + note: |- + HYDRAZINE L 5/90 + E. Goos, A. Burcat and B. Ruscic http://garfield.chem.elte.hu/Burcat/THERM.DAT + transport: + model: gas + geometry: nonlinear + well-depth: 205.0 + diameter: 4.23 + polarizability: 4.26 + rotational-relaxation: 1.5 +- name: N + composition: {N: 1} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [2.5, 0.0, 0.0, 0.0, 0.0, 5.6104638e+04, 4.1939088] + - [2.4159429, 1.7489065e-04, -1.1902369e-07, 3.0226244e-11, -2.0360983e-15, + 5.6133775e+04, 4.6496095] + note: |- + L 6/88 + E. Goos, A. Burcat and B. Ruscic http://garfield.chem.elte.hu/Burcat/THERM.DAT + transport: + model: gas + geometry: atom + well-depth: 71.4 + diameter: 3.298 +- name: NO3 + composition: {N: 1, O: 3} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [2.1735933, 0.0104902685, 1.10472669e-05, -2.81561867e-08, 1.3658396e-11, + 7812.90905, 14.602209] + - [7.48347702, 2.57772064e-03, -1.00945831e-06, 1.72314063e-10, -1.07154008e-14, + 6129.90474, -14.1618136] + note: |- + ATcT/A + E. Goos, A. Burcat and B. Ruscic http://garfield.chem.elte.hu/Burcat/THERM.DAT + transport: + model: gas + geometry: nonlinear + well-depth: 300.0 + diameter: 3.5 + rotational-relaxation: 1.0 +- name: NH + composition: {N: 1, H: 1} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [3.49295037, 3.1179572e-04, -1.48906628e-06, 2.48167402e-09, -1.03570916e-12, + 4.21059722e+04, 1.84834973] + - [2.78372644, 1.32985888e-03, -4.24785573e-07, 7.83494442e-11, -5.5045131e-15, + 4.23461945e+04, 5.74084863] + note: |- + ATcT/A + E. Goos, A. Burcat and B. Ruscic http://garfield.chem.elte.hu/Burcat/THERM.DAT + transport: + model: gas + geometry: linear + well-depth: 80.0 + diameter: 2.65 + rotational-relaxation: 4.0 +- name: NNH + composition: {N: 2, H: 1} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [4.25474632, -3.45098298e-03, 1.37788699e-05, -1.33263744e-08, 4.41023397e-12, + 2.8793208e+04, 3.28551762] + - [3.42744423, 3.23295234e-03, -1.17296299e-06, 1.90508356e-10, -1.14491506e-14, + 2.87676026e+04, 6.39209233] + note: |- + T 8/11 + N2H in Burcat database http://garfield.chem.elte.hu/Burcat/THERM.DAT + transport: + model: gas + geometry: nonlinear + well-depth: 71.4 + diameter: 3.798 + rotational-relaxation: 1.0 +- name: NH2 + composition: {N: 1, H: 2} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 3000.0] + data: + - [4.19198016, -2.04602827e-03, 6.67756134e-06, -5.24907235e-09, 1.55589948e-12, + 2.11863286e+04, -0.0904785244] + - [2.59263049, 3.47683597e-03, -1.08271624e-06, 1.49342558e-10, -5.75241187e-15, + 2.1573732e+04, 7.90565351] + note: |- + AMIDOGEN RAD IU3/03 + E. Goos, A. Burcat and B. Ruscic http://garfield.chem.elte.hu/Burcat/THERM.DAT + transport: + model: gas + geometry: nonlinear + well-depth: 80.0 + diameter: 2.65 + polarizability: 2.26 + rotational-relaxation: 4.0 +- name: H2NO + composition: {N: 1, H: 2, O: 1} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [3.93201139, -1.64028165e-04, 1.39161409e-05, -1.62747853e-08, 6.00352834e-12, + 6711.78975, 4.58837038] + - [3.75555914, 5.16219354e-03, -1.76387387e-06, 2.75052692e-10, -1.60643143e-14, + 6518.26177, 4.30933053] + note: |- + RADICAL T09/09 + Glarborg, P. et al. Progr Energy Combust Sci, 67, 31-68. (2018) + transport: + model: gas + geometry: nonlinear + well-depth: 116.7 + diameter: 3.492 + rotational-relaxation: 1.0 +- name: N2H3 + composition: {N: 2, H: 3} + thermo: + model: NASA7 + temperature-ranges: [200.0, 1000.0, 6000.0] + data: + - [3.42125505, 1.3490159e-03, 2.23459071e-05, -2.99727732e-08, 1.2097897e-11, + 2.58198956e+04, 7.83176309] + - [4.04483566, 7.31130186e-03, -2.47625799e-06, 3.83733021e-10, -2.23107573e-14, + 2.5324142e+04, 2.88423392] + note: |- + Rad. T 7/11 + E. Goos, A. Burcat and B. Ruscic http://garfield.chem.elte.hu/Burcat/THERM.DAT + transport: + model: gas + geometry: nonlinear + well-depth: 200.0 + diameter: 3.9 + rotational-relaxation: 1.0 + +reactions: +- equation: H2 + M <=> H + H + M # Reaction 1 + type: three-body + rate-constant: {A: 4.577e+19, b: -1.4, Ea: 1.044e+05} + efficiencies: {H2: 2.5, H2O: 12.0, HE: 0.83} + note: |- + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + \KINETICS_MODULE: \H2_O2 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + \AUTHOR: AK !\REF: TSANG AND HAMPSON, J. PHYS. CHEM. REF. DATA, 15:1087 (1986) !\COMMENT: +- equation: H2 + O <=> H + OH # Reaction 2 + rate-constant: {A: 5.08e+04, b: 2.67, Ea: 6292.0} + note: |- + 3RD BODY COLLIDER EFFICIENCIES + \AUTHOR: AK !\REF:SUTHERLAND ET AL., 21ST SYMPOSIUM, P. 929 (1986) !\COMMENT: +- equation: H2 + OH <=> H + H2O # Reaction 3 + rate-constant: {A: 4.38e+13, b: 0.0, Ea: 6990.0} + note: '\AUTHOR: AK !\REF:LAM ET AL. SUBMITTED IJCK !\COMMENT' +- equation: O + O + M <=> O2 + M # Reaction 4 + type: three-body + rate-constant: {A: 6.165e+15, b: -0.5, Ea: 0.0} + efficiencies: {H2: 2.5, H2O: 12.0, AR: 0.83, HE: 0.83} + note: '\AUTHOR: AK !\REF: TSANG AND HAMPSON, J. PHYS. CHEM. REF. DATA, + 15:1087 (1986) !\COMMENT:' +- equation: O2 + H <=> O + OH # Reaction 5 + rate-constant: {A: 1.14e+14, b: 0.0, Ea: 1.5286e+04} + note: |- + 3RD BODY COLLIDER EFFICIENCIES + \AUTHOR: AK !\REF: HONG ET AL. PROC. OF THE COMB. INST. 33 (2011) 309-316 !\COMMENT: 2 PARAMETER FIT ! ER_1706 +10% (1.04 --> 1.14)) +- equation: H + OH + M <=> H2O + M # Reaction 6 + type: three-body + rate-constant: {A: 3.5e+22, b: -2.0, Ea: 0.0} + efficiencies: {H2: 0.73, H2O: 3.65, AR: 0.38} + note: '\AUTHOR: AK !\REF: LI IJCK 36: 566-575, 2004 !\COMMENT:OPTIMISED + TO FIT H2 AND CH4 FLAMES DATA' +- equation: O + H2O <=> OH + OH # Reaction 7 + rate-constant: {A: 6.7e+07, b: 1.704, Ea: 1.49868e+04} + note: |- + 3RD BODY COLLIDER EFFICIENCIES + \AUTHOR: AK !\REF: SUTHERLAND ET AL., 23RD SYMPOSIUM, P. 51 (1990) !\COMMENT: +- equation: O + H + M <=> OH + M # Reaction 8 + type: three-body + rate-constant: {A: 4.714e+18, b: -1.0, Ea: 0.0} + efficiencies: {H2: 2.5, H2O: 12.0, AR: 0.75, HE: 0.75} + note: '\AUTHOR: AK !\REF: TSANG AND HAMPSON, J. PHYS. CHEM. REF. DATA, + 15:1087 (1986) !\COMMENT:' +- equation: H2O2 (+M) <=> OH + OH (+M) # Reaction 9 + type: falloff + low-P-rate-constant: {A: 2.49e+24, b: -2.3, Ea: 4.8749e+04} + high-P-rate-constant: {A: 2.0e+12, b: 0.9, Ea: 4.8749e+04} + Troe: {A: 0.43, T3: 1.0e-30, T1: 1.0e+30} + efficiencies: {H2O: 7.65, N2: 1.5, O2: 1.2, HE: 0.65, H2O2: 7.7, H2: 3.7} + note: |- + 3RD BODY COLLIDER EFFICIENCIES + \AUTHOR: AK !\REF: TROE, COMBUST. FLAME, 158:594-601 (2011)!\COMMENT: RATE CONSTANT IS FOR N2, !\COMMENT: EFFICIENCIS OF H2O FROM THE SAME REF, +- equation: H2O2 + H <=> H2O + OH # Reaction 10 + rate-constant: {A: 2.41e+13, b: 0.0, Ea: 3970.0} + note: |- + LOW-PRESSURE-LIMIT + TROE PARAMETERS + 3RD BODY COLLIDER EFFICIENCIES + \AUTHOR: AK !\REF:TSANG AND HAMPSON, J. PHYS. CHEM. REF. DATA, 15:1087 (1986) !\COMMENT: +- equation: H2O2 + H <=> H2 + HO2 # Reaction 11 + rate-constant: {A: 2.15e+10, b: 1.0, Ea: 6000.0} + note: '\AUTHOR: AK !\REF: ELLINGSON J. PHYS. CHEM. (2007) 111, (51), 13554-13566 + !\COMMENT:' +- equation: H2O2 + O <=> OH + HO2 # Reaction 12 + rate-constant: {A: 9.55e+06, b: 2.0, Ea: 3970.0} + note: '\AUTHOR: AK !\REF:TSANG AND HAMPSON, J. PHYS. CHEM. REF. DATA, + 15:1087 (1986) !\COMMENT:' +- equation: H2O2 + OH <=> H2O + HO2 # Reaction 13 + duplicate: true + rate-constant: {A: 1.74e+12, b: 0.0, Ea: 318.0} + note: '\AUTHOR: AK !\REF: HONG ET AL. J. PHYS. CHEM. A 114 (2010) 5718-5727 + !\COMMENT:' +- equation: H2O2 + OH <=> H2O + HO2 # Reaction 14 + duplicate: true + rate-constant: {A: 7.59e+13, b: 0.0, Ea: 7269.0} + note: '\AUTHOR: !\REF: !\COMMENT:' +- equation: HO2 + H <=> OH + OH # Reaction 15 + rate-constant: {A: 7.079e+13, b: 0.0, Ea: 295.0} + note: '\AUTHOR: KPS !\REF: !\COMMENT:' +- equation: HO2 + H <=> H2 + O2 # Reaction 16 + rate-constant: {A: 1.1402e+10, b: 1.0827, Ea: 553.78} + note: '\AUTHOR: AK !\REF:MICHAEL SUTHERLAND 2000 !\COMMENT:' +- equation: HO2 + O <=> OH + O2 # Reaction 17 + rate-constant: {A: 3.25e+13, b: 0.0, Ea: 0.0} + note: '\AUTHOR: AK !\REF:BAULCH ET AL., J. PHYS. CHEM. REF DATA, 21:411 + (1992)' +- equation: OH + HO2 <=> H2O + O2 # Reaction 18 + duplicate: true + rate-constant: {A: 7.0e+12, b: 0.0, Ea: -1092.96} + note: '\AUTHOR: ?? !\REF: hong pci 2013 1015C !\COMMENT: WARNING' +- equation: OH + HO2 <=> H2O + O2 # Reaction 19 + duplicate: true + rate-constant: {A: 4.5e+14, b: 0.0, Ea: 1.09296e+04} + note: '\AUTHOR: !\REF: !\COMMENT:' +- equation: HO2 + HO2 <=> H2O2 + O2 # Reaction 20 + duplicate: true + rate-constant: {A: 1.0e+14, b: 0.0, Ea: 1.1040883e+04} + note: '\AUTHOR: AK !\REF: hong pci 2013, kapel 2002 !\COMMENT: WARNING' +- equation: HO2 + HO2 <=> H2O2 + O2 # Reaction 21 + duplicate: true + rate-constant: {A: 1.9e+11, b: 0.0, Ea: -1408.9248} + note: '\AUTHOR: !\REF: !\COMMENT:' +- equation: H + O2 (+M) <=> HO2 (+M) # Reaction 22 + type: falloff + low-P-rate-constant: {A: 1.737e+19, b: -1.23, Ea: 0.0} + high-P-rate-constant: {A: 4.65e+12, b: 0.44, Ea: 0.0} + Troe: {A: 0.67, T3: 1.0e-30, T1: 1.0e+30, T2: 1.0e+30} + efficiencies: {H2: 1.3, HE: 0.64, H2O: 10.0, AR: 0.5} + note: '\AUTHOR: AK !\REF:FERNANDES PCCP 2008 !COMMENT: Efficiencis of + AR and HE derived from seperated reactions,' +- equation: O + OH + M <=> HO2 + M # Reaction 23 + type: three-body + rate-constant: {A: 1.0e+16, b: 0.0, Ea: 0.0} + note: |- + LOW-PRESSURE-LIMIT + TROE PARAMETERS + 3RD BODY COLLIDER EFFICIENCIES + \AUTHOR: ?? !\REF: ?? !COMMENT: From POLIMI 1700 +- equation: NH3 <=> NH2 + H # Reaction 24 + type: pressure-dependent-Arrhenius + rate-constants: + - {P: 0.1 atm, A: 7.23e+29, b: -5.316, Ea: 1.108624e+05} + - {P: 1.0 atm, A: 3.497e+30, b: -5.224, Ea: 1.111633e+05} + - {P: 10.0 atm, A: 1.975e+31, b: -5.155, Ea: 1.118878e+05} + - {P: 100.0 atm, A: 2.689e+31, b: -4.92, Ea: 1.127787e+05} + note: |- + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + \END_KINETICS_MODULE: \H2_O2 !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + \KINETICS_MODULE: \NOx_H2O2_HT + \AUTHOR: AS !\REF: Stagni, A. et al. React. Chem. Eng. (submitted) (2020). !\COMMENT: T = 800-2500 K fitted +- equation: NH2 + H <=> NH + H2 # Reaction 25 + rate-constant: {A: 4.0e+13, b: 0.0, Ea: 3650.0} + note: '\AUTHOR: AS !\REF: Davidson, D. F., et al. Int Jour Chem Kinet, + 22(5), 513-535 (1990). !\COMMENT:' +- equation: NH3 + H <=> H2 + NH2 # Reaction 26 + rate-constant: {A: 1.963e+04, b: 2.854, Ea: 8520.2} + note: '\AUTHOR: AS !\REF: Stagni, A. et al. React. Chem. Eng. (submitted) + (2020). !\COMMENT: T = 300-2500 K' +- equation: NH3 + OH <=> H2O + NH2 # Reaction 27 + rate-constant: {A: 1.559e+05, b: 2.372, Ea: 118.9} + note: '\AUTHOR: AS !\REF: Stagni, A. et al. React. Chem. Eng. (submitted) + (2020). !\COMMENT: T = 300-2500 K' +- equation: NH3 + O <=> NH2 + OH # Reaction 28 + rate-constant: {A: 443.0, b: 3.18, Ea: 6739.9} + note: '\AUTHOR: AS !\REF: Stagni, A. et al. React. Chem. Eng. (submitted) + (2020). !\COMMENT: T = 300-2500 K' +- equation: NH3 + HO2 <=> NH2 + H2O2 # Reaction 29 + rate-constant: {A: 1.173, b: 3.839, Ea: 1.726e+04} + note: '\AUTHOR: AS !\REF: Stagni, A. et al. React. Chem. Eng. (submitted) + (2020). !\COMMENT: T = 300-2500 K' +- equation: NH3 + O2 <=> NH2 + HO2 # Reaction 30 + rate-constant: {A: 1.415e+10, b: 1.285, Ea: 5.5224e+04} + note: '\AUTHOR: AS !\REF: Stagni, A. et al. React. Chem. Eng. (submitted) + (2020). !\COMMENT: T = 300-2500 K' +- equation: NH2 + O <=> HNO + H # Reaction 31 + duplicate: true + rate-constant: {A: 1.5e+15, b: -0.547, Ea: 836.7} + note: '\AUTHOR: AS !\REF: Sumathi, R., et al. J Phys Chem A, 102(18), + 3175-3183. (1998) !\COMMENT: Fit from chart (Figure 5)' +- equation: NH2 + O <=> HNO + H # Reaction 32 + duplicate: true + rate-constant: {A: 7.73e+13, b: -0.277, Ea: 646.4} + note: '\AUTHOR: AS !\REF: Sumathi, R., et al. J Phys Chem A, 102(18), + 3175-3183. (1998) !\COMMENT: Fit from chart (Figure 5)' +- equation: NH2 + O <=> NH + OH # Reaction 33 + duplicate: true + rate-constant: {A: 7.0e+12, b: 0.0, Ea: 0.0} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: NH2 + O <=> NH + OH # Reaction 34 + duplicate: true + rate-constant: {A: 3.3e+08, b: 1.5, Ea: 5076.8} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: NH2 + OH <=> NH + H2O # Reaction 35 + rate-constant: {A: 9.6e+06, b: 1.97, Ea: 670.0} + note: '\AUTHOR: AS !\REF: Mousavipour, S.H. et al. J. Phys. Chem. A 113 + 12961-12971 (2009) !\COMMENT:' +- equation: NH2 + O2 <=> HNO + OH # Reaction 36 + rate-constant: {A: 0.029, b: 3.764, Ea: 1.8185e+04} + note: '\AUTHOR: AS !\REF: SJ Klippenstein LB Harding P Glarborg JA Miller + CF 158 (2011) 774-789. !\COMMENT:' +- equation: NH2 + O2 <=> H2NO + O # Reaction 37 + rate-constant: {A: 2.6e+11, b: 0.487, Ea: 2.905e+04} + note: '\AUTHOR: AS !\REF: SJ Klippenstein LB Harding P Glarborg JA Miller + CF 158 (2011) 774-789. !\COMMENT:' +- equation: NH2 + HO2 <=> OH + H2NO # Reaction 38 + rate-constant: {A: 1.566e+13, b: 0.0, Ea: 0.0} + note: '\AUTHOR: AS !\REF: Baulch, D. L., Bowman, C. T., et al. J Phys + Chem Ref Data, 34(3), 757-1397 (2005). !\COMMENT:' +- equation: NH2 + NH <=> N2H2 + H # Reaction 39 + rate-constant: {A: 1.5e+15, b: -0.5, Ea: 0.0} + note: '\AUTHOR: AS !\REF: Davidson, D.F. et al. Int. J. Chem. Kinet. 22 + 513-535 (1990) !\COMMENT:' +- equation: NH2 + NH <=> NH3 + N # Reaction 40 + rate-constant: {A: 9600.0, b: 2.46, Ea: 107.0} + note: '\AUTHOR: AS !\REF: SJ Klippenstein et al J Phys Chem A 113 10241-10259 + (2009). !\COMMENT:' +- equation: NH + NH <=> NH2 + N # Reaction 41 + rate-constant: {A: 0.57, b: 3.88, Ea: 342.0} + note: '\AUTHOR: AS !\REF: SJ Klippenstein et al J Phys Chem A 113 10241-10259 + (2009). !\COMMENT:' +- equation: NH + NH => N2 + H2 # Reaction 42 + rate-constant: {A: 6.26e+12, b: -0.036, Ea: -160.9} + note: '\AUTHOR: AS !\REF: SJ Klippenstein et al J Phys Chem A 113 10241-10259 + (2009). !\COMMENT: High-Pressure rate, dissociation of N2H2 (10%)' +- equation: NH + NH => N2 + H + H # Reaction 43 + rate-constant: {A: 5.634e+13, b: -0.036, Ea: -160.9} + note: '\AUTHOR: AS !\REF: SJ Klippenstein et al J Phys Chem A 113 10241-10259 + (2009). !\COMMENT: High-Pressure rate, dissociation of N2H2 (90%)' +- equation: NH2 + NH2 <=> NH3 + NH # Reaction 44 + rate-constant: {A: 5.64, b: 3.53, Ea: 550.0} + note: '\AUTHOR: AS !\REF: SJ Klippenstein et al J Phys Chem A 113 10241-10259 + (2009). !\COMMENT:' +- equation: NH2 + NH2 <=> N2H4 # Reaction 45 + type: pressure-dependent-Arrhenius + rate-constants: + - {P: 0.1 atm, A: 2.0e+46, b: -10.93, Ea: 9994.6} + - {P: 1.0 atm, A: 5.6e+48, b: -11.3, Ea: 1.18823e+04} + - {P: 10.0 atm, A: 3.2e+49, b: -11.18, Ea: 1.39885e+04} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: NH2 + NH2 <=> N2H3 + H # Reaction 46 + type: pressure-dependent-Arrhenius + rate-constants: + - {P: 0.1 atm, A: 9.2e+11, b: -0.01, Ea: 1.00145e+04} + - {P: 1.0 atm, A: 1.2e+12, b: -0.03, Ea: 1.0084e+04} + - {P: 10.0 atm, A: 4.7e+12, b: -0.2, Ea: 1.06205e+04} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: NH2 + NH2 <=> H2NN + H2 # Reaction 47 + type: pressure-dependent-Arrhenius + rate-constants: + - {P: 0.1 atm, A: 2.4e+20, b: -2.91, Ea: 2136.0} + - {P: 1.0 atm, A: 1.2e+21, b: -3.08, Ea: 3368.0} + - {P: 10.0 atm, A: 2.3e+19, b: -2.54, Ea: 4182.6} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: NH2OH (+M) <=> NH2 + OH (+M) # Reaction 48 + type: falloff + low-P-rate-constant: {A: 5.4e+37, b: -5.96, Ea: 6.6783e+04} + high-P-rate-constant: {A: 1.4e+20, b: -1.31, Ea: 6.408e+04} + Troe: {A: 0.35, T3: 1.0e-30, T1: 1.0e+30, T2: 1.0e+30} + note: '\AUTHOR: AS !\REF: SJ Klippenstein et al J Phys Chem A 113 10241-10259 + (2009).' +- equation: NH2OH + H <=> HNOH + H2 # Reaction 49 + rate-constant: {A: 4.8e+08, b: 1.5, Ea: 6249.0} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: NH2OH + H <=> H2NO + H2 # Reaction 50 + rate-constant: {A: 2.4e+08, b: 1.5, Ea: 5067.0} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: NH2OH + O <=> HNOH + OH # Reaction 51 + rate-constant: {A: 3.3e+08, b: 1.5, Ea: 3865.0} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: NH2OH + O <=> H2NO + OH # Reaction 52 + rate-constant: {A: 1.7e+08, b: 1.5, Ea: 3010.0} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: NH2OH + OH <=> HNOH + H2O # Reaction 53 + rate-constant: {A: 1.5e+04, b: 2.61, Ea: -3537.0} + note: '\AUTHOR: AS !\REF: SJ Klippenstein et al J Phys Chem A 113 10241-10259 + (2009).' +- equation: NH2OH + OH <=> H2NO + H2O # Reaction 54 + rate-constant: {A: 1.5e+05, b: 2.28, Ea: -1296.0} + note: '\AUTHOR: AS !\REF: SJ Klippenstein et al J Phys Chem A 113 10241-10259 + (2009).' +- equation: NH2OH + NH2 <=> HNOH + NH3 # Reaction 55 + rate-constant: {A: 0.11, b: 4.0, Ea: -97.0} + note: '\AUTHOR: AS !\REF: SJ Klippenstein et al J Phys Chem A 113 10241-10259 + (2009).' +- equation: NH2OH + NH2 <=> H2NO + NH3 # Reaction 56 + rate-constant: {A: 9.5, b: 3.42, Ea: -1013.0} + note: '\AUTHOR: AS !\REF: SJ Klippenstein et al J Phys Chem A 113 10241-10259 + (2009).' +- equation: NH2OH + NH <=> HNOH + NH2 # Reaction 57 + rate-constant: {A: 2.9e-03, b: 4.4, Ea: 1564.0} + note: '\AUTHOR: AS !\REF: SJ Klippenstein et al J Phys Chem A 113 10241-10259 + (2009).' +- equation: NH2OH + NH <=> H2NO + NH2 # Reaction 58 + rate-constant: {A: 1.5e-03, b: 4.6, Ea: 2424.0} + note: '\AUTHOR: AS !\REF: SJ Klippenstein et al J Phys Chem A 113 10241-10259 + (2009).' +- equation: NH2OH + HO2 <=> HNOH + H2O2 # Reaction 59 + rate-constant: {A: 2.9e+04, b: 2.69, Ea: 9557.0} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: NH2OH + HO2 <=> H2NO + H2O2 # Reaction 60 + rate-constant: {A: 1.4e+04, b: 2.69, Ea: 6418.0} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: HNOH + M <=> HNO + H + M # Reaction 61 + type: three-body + rate-constant: {A: 2.0e+24, b: -2.84, Ea: 5.8934e+04} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: HNOH + O2 <=> HNO + HO2 # Reaction 62 + rate-constant: {A: 3.0e+12, b: 0.0, Ea: 2.5e+04} + note: '\AUTHOR: AS !\REF: Skreiberg, O., Kilpinen, P., & Glarborg, P. + (2004). Combustion and Flame, 136(4), 501-518. !\COMMENT:' +- equation: HNOH + H <=> NH2 + OH # Reaction 63 + rate-constant: {A: 4.0e+13, b: 0.0, Ea: 0.0} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: HNOH + H <=> HNO + H2 # Reaction 64 + rate-constant: {A: 4.8e+08, b: 1.5, Ea: 378.0} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: HNOH + O <=> HNO + OH # Reaction 65 + duplicate: true + rate-constant: {A: 7.0e+13, b: 0.0, Ea: 0.0} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: HNOH + O <=> HNO + OH # Reaction 66 + duplicate: true + rate-constant: {A: 3.3e+08, b: 1.5, Ea: -358.0} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: HNOH + OH <=> HNO + H2O # Reaction 67 + rate-constant: {A: 2.4e+06, b: 2.0, Ea: -1192.0} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: HNOH + HO2 <=> HNO + H2O2 # Reaction 68 + rate-constant: {A: 2.9e+04, b: 2.69, Ea: -1600.0} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: HNOH + HO2 <=> NH2OH + O2 # Reaction 69 + rate-constant: {A: 2.9e+04, b: 2.69, Ea: -1600.0} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: HNOH + NH2 <=> NH3 + HNO # Reaction 70 + rate-constant: {A: 1.8e+06, b: 1.94, Ea: -1152.0} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: HNOH + NH2 <=> N2H3 + OH # Reaction 71 + rate-constant: {A: 6.7e+06, b: 1.82, Ea: 715.3} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: HNOH + NH2 <=> H2NN + H2O # Reaction 72 + rate-constant: {A: 4.6e+19, b: -1.94, Ea: 1927.4} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: HNOH + NO2 <=> HONO + HNO # Reaction 73 + rate-constant: {A: 6.0e+11, b: 0.0, Ea: 2000.0} + note: '\AUTHOR: AS !\REF: Skreiberg, O., Kilpinen, P., & Glarborg, P. + (2004). Combustion and Flame, 136(4), 501-518. !\COMMENT:' +- equation: NH2 + NO2 <=> H2NO + NO # Reaction 74 + rate-constant: {A: 8.6e+11, b: 0.11, Ea: -1186.0} + note: '\AUTHOR: AS !\REF: Glarborg, P. et al. Progr Energy Combust Sci, + 67, 31-68. (2018) !\COMMENT:' +- equation: NH2 + NO2 <=> N2O + H2O # Reaction 75 + rate-constant: {A: 2.2e+11, b: 0.11, Ea: -1186.0} + note: '\AUTHOR: AS !\REF: Glarborg, P. et al. Progr Energy Combust Sci, + 67, 31-68. (2018) !\COMMENT:' +- equation: NH2 + NO <=> N2 + H2O # Reaction 76 + rate-constant: {A: 2.6e+19, b: -2.369, Ea: 870.0} + note: '\AUTHOR: AS !\REF: Song, S., et al. Int Jour Chem Kinet, 33(11), + 715-721. (2001) !\COMMENT:' +- equation: NH2 + NO <=> NNH + OH # Reaction 77 + rate-constant: {A: 4.3e+10, b: 0.294, Ea: -866.0} + note: '\AUTHOR: AS !\REF: Song, S., et al. Int Jour Chem Kinet, 33(11), + 715-721. (2001) !\COMMENT:' +- equation: NH + H <=> N + H2 # Reaction 78 + rate-constant: {A: 3.01e+13, b: 0.0, Ea: 0.0} + note: '\AUTHOR: AS !\REF: Baulch, D. L., Bowman, C. T., et al. J Phys + Chem Ref Data, 34(3), 757-1397 (2005). !\COMMENT:' +- equation: NH + O <=> NO + H # Reaction 79 + rate-constant: {A: 3.0e+13, b: 0.0, Ea: 0.0} + note: '\AUTHOR: AS !\REF: Cohen, N.; Westberg, K.R. J. Phys. Chem. Ref. + Data 20 1211 - 1311 (1991) !\COMMENT:' +- equation: NH + OH <=> HNO + H # Reaction 80 + rate-constant: {A: 2.0e+13, b: 0.0, Ea: 0.0} + note: '\AUTHOR: AS !\REF: Cohen, N.; Westberg, K.R. J. Phys. Chem. Ref. + Data 20 1211 - 1311 (1991) !\COMMENT:' +- equation: NH + OH <=> N + H2O # Reaction 81 + rate-constant: {A: 2.0e+09, b: 1.2, Ea: 0.0} + note: '\AUTHOR: AS !\REF: Cohen, N.; Westberg, K.R. J. Phys. Chem. Ref. + Data 20 1211 - 1311 (1991) !\COMMENT:' +- equation: NH + O2 <=> HNO + O # Reaction 82 + rate-constant: {A: 4.05e+11, b: 0.09, Ea: 1.067e+04} + note: '\AUTHOR: AS !\REF: Talipov, M.R. et al. J. Phys. Chem. A 113 6468 + - 6476 (2009) !\COMMENT:' +- equation: NH + O2 <=> NO + OH # Reaction 83 + rate-constant: {A: 2.01e+15, b: -1.38, Ea: 5670.0} + note: '\AUTHOR: AS !\REF: Talipov, M.R. et al. J. Phys. Chem. A 113 6468 + - 6476 (2009) !\COMMENT:' +- equation: NH + N <=> N2 + H # Reaction 84 + rate-constant: {A: 6.41e+11, b: 0.51, Ea: 20.0} + note: '\AUTHOR: AS !\REF: Caridade, P.JSB.; Rodrigues, S.PJ.; Sousa, F.; + Varandas, A.JC. J. Phys. Chem. A 109 (2005) !\COMMENT:' +- equation: NH + NO <=> N2O + H # Reaction 85 + rate-constant: {A: 5.328e+12, b: 0.026, Ea: -2893.9} + note: '\AUTHOR: AS !\REF: Haworth, N.L. et al. J. Phys. Chem. A 107 6792 + - 6803 (2003) !\COMMENT:' +- equation: NH + NO <=> N2 + OH # Reaction 86 + rate-constant: {A: 3.635e+10, b: 0.361, Ea: -2844.3} + note: '\AUTHOR: AS !\REF: Haworth, N.L. et al. J. Phys. Chem. A 107 6792 + - 6803 (2003) !\COMMENT:' +- equation: NH + NO2 <=> N2O + OH # Reaction 87 + rate-constant: {A: 4.1e+12, b: 0.0, Ea: 0.0} + note: '\AUTHOR: AS !\REF: Harrison JA Whyte AR Phillips LF CPL 129:346 + 1986 !\COMMENT:' +- equation: NH + NO2 <=> HNO + NO # Reaction 88 + rate-constant: {A: 5.9e+12, b: 0.0, Ea: 0.0} + note: '\AUTHOR: AS !\REF: Harrison JA Whyte AR Phillips LF CPL 129:346 + 1986 !\COMMENT:' +- equation: N + OH <=> NO + H # Reaction 89 + rate-constant: {A: 2.83e+13, b: 0.0, Ea: 0.0} + note: |2- + Thermal NOx + \AUTHOR: AS !\REF: Baulch, DL et al. J. Phys. Chem. Ref. Data 23 847-1033 (1994) !\COMMENT: +- equation: N + O2 <=> NO + O # Reaction 90 + rate-constant: {A: 9.027e+09, b: 1.0, Ea: 6500.0} + note: '\AUTHOR: AS !\REF: Baulch, DL et al. J. Phys. Chem. Ref. Data 23 + 847-1033 (1994) !\COMMENT:' +- equation: N + NO <=> O + N2 # Reaction 91 + rate-constant: {A: 4.28e+13, b: 0.0, Ea: 1570.0} + note: '\AUTHOR: AS !\REF: Baulch, DL et al. J. Phys. Chem. Ref. Data 23 + 847-1033 (1994) !\COMMENT:' +- equation: N2H4 <=> H2NN + H2 # Reaction 92 + type: pressure-dependent-Arrhenius + rate-constants: + - {P: 0.1 atm, A: 4.0e+44, b: -9.85, Ea: 7.13532e+04} + - {P: 1.0 atm, A: 5.3e+39, b: -8.35, Ea: 6.93066e+04} + - {P: 10.0 atm, A: 2.5e+39, b: -8.19, Ea: 6.96642e+04} + note: |2- + N2Hx + \AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +- equation: N2H4 + H <=> N2H3 + H2 # Reaction 93 + rate-constant: {A: 9.6e+08, b: 1.5, Ea: 4838.3} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: N2H4 + O <=> N2H3 + OH # Reaction 94 + rate-constant: {A: 6.7e+08, b: 1.5, Ea: 2851.3} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: N2H4 + O <=> N2H2 + H2O # Reaction 95 + rate-constant: {A: 8.49e+13, b: 0.0, Ea: 1200.0} + note: '\AUTHOR: AS !\REF: Gehring, M.; Hoyermann, K.; Wagner, H.G.; Wolfrum, + J. Ber. Bunsenges. Phys. Chem. 73 (1969) !\COMMENT: T = 243-463 K' +- equation: N2H4 + OH <=> N2H3 + H2O # Reaction 96 + rate-constant: {A: 1.3e+13, b: 0.0, Ea: -318.0} + note: '\AUTHOR: AS !\REF: Vaghjiani, GL Int. J. Chem. Kinet. 33(6), 354-362 + (2001) !\COMMENT: T = 232637 K' +- equation: N2H4 + NH2 <=> N2H3 + NH3 # Reaction 97 + rate-constant: {A: 3.7e+06, b: 1.94, Ea: 1630.0} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: N2H4 + NO <=> N2H3 + HNO # Reaction 98 + rate-constant: {A: 60.0, b: 3.16, Ea: 3.0845e+04} + note: '\AUTHOR: AS !\REF: Raghunath, P., Lin, Y. H., & Lin, M. C. Comput + Theor Chem, 1046, 73-80 (2014). !\COMMENT:' +- equation: N2H4 + NO2 <=> N2H3 + HONO # Reaction 99 + rate-constant: {A: 82.0, b: 3.13, Ea: 8860.0} + note: '\AUTHOR: AS !\REF: Raghunath, P., Lin, Y. H., & Lin, M. C. Comput + Theor Chem, 1046, 73-80 (2014). !\COMMENT:' +- equation: N2H4 + NO2 <=> N2H3 + HNO2 # Reaction 100 + rate-constant: {A: 0.024, b: 4.14, Ea: 7946.0} + note: '\AUTHOR: AS !\REF: Raghunath, P., Lin, Y. H., & Lin, M. C. Comput + Theor Chem, 1046, 73-80 (2014). !\COMMENT:' +- equation: N2H3 <=> N2H2 + H # Reaction 101 + type: pressure-dependent-Arrhenius + rate-constants: + - {P: 0.1 atm, A: 2.3e+43, b: -9.55, Ea: 6.44358e+04} + - {P: 1.0 atm, A: 3.6e+47, b: -10.38, Ea: 6.89738e+04} + - {P: 10.0 atm, A: 1.8e+45, b: -9.39, Ea: 7.01058e+04} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: N2H3 + H <=> N2H2 + H2 # Reaction 102 + rate-constant: {A: 2.4e+08, b: 1.5, Ea: 0.0} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: N2H3 + O <=> NH2 + HNO # Reaction 103 + rate-constant: {A: 3.0e+13, b: 0.0, Ea: 0.0} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: N2H3 + O <=> N2H2 + OH # Reaction 104 + rate-constant: {A: 1.7e+08, b: 1.5, Ea: -645.5} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: N2H3 + OH <=> N2H2 + H2O # Reaction 105 + rate-constant: {A: 1.2e+06, b: 2.0, Ea: -1191.6} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: N2H3 + OH <=> H2NN + H2O # Reaction 106 + rate-constant: {A: 3.0e+13, b: 0.0, Ea: 0.0} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: N2H3 + NH2 <=> N2H2 + NH3 # Reaction 107 + rate-constant: {A: 9.2e+05, b: 1.94, Ea: -1152.5} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: N2H3 + NH2 <=> H2NN + NH3 # Reaction 108 + rate-constant: {A: 3.0e+13, b: 0.0, Ea: 0.0} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: N2H3 + HO2 <=> N2H2 + H2O2 # Reaction 109 + rate-constant: {A: 1.4e+04, b: 2.69, Ea: -1599.5} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: N2H3 + HO2 <=> N2H4 + O2 # Reaction 110 + rate-constant: {A: 9.2e+05, b: 1.94, Ea: 2126.1} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: N2H2 <=> NNH + H # Reaction 111 + duplicate: true + type: pressure-dependent-Arrhenius + rate-constants: + - {P: 0.1 atm, A: 5.6e+36, b: -7.75, Ea: 7.0215e+04} + - {P: 1.0 atm, A: 1.8e+40, b: -8.41, Ea: 7.3353e+04} + - {P: 10.0 atm, A: 3.1e+41, b: -8.42, Ea: 7.60042e+04} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT: N2 as bath gas' +- equation: N2H2 <=> NNH + H # Reaction 112 + duplicate: true + type: pressure-dependent-Arrhenius + rate-constants: + - {P: 0.1 atm, A: 1.6e+37, b: -7.94, Ea: 7.07215e+04} + - {P: 1.0 atm, A: 2.6e+40, b: -8.53, Ea: 7.28862e+04} + - {P: 10.0 atm, A: 1.3e+44, b: -9.22, Ea: 7.70369e+04} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT: N2 as bath gas' +- equation: N2H2 + H <=> NNH + H2 # Reaction 113 + rate-constant: {A: 4.121e+09, b: 1.289, Ea: -224.1} + note: '\AUTHOR: AS !\REF: Zheng, J., et al. J Chem Phys, 136(18), 184310 + (2012). !\COMMENT:' +- equation: N2H2 + O <=> NNH + OH # Reaction 114 + rate-constant: {A: 3.3e+08, b: 1.5, Ea: 496.5} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT: N2 as bath gas' +- equation: N2H2 + OH <=> NNH + H2O # Reaction 115 + rate-constant: {A: 59.23, b: 3.4, Ea: -1363.7} + note: '\AUTHOR: AS !\REF: Linder, D.P.; Duan, X.; Page, M. J. Chem. Phys. + 104 6298 - 6306 (1996) !\COMMENT:' +- equation: N2H2 + NO <=> N2O + NH2 # Reaction 116 + rate-constant: {A: 4.0e+12, b: 0.0, Ea: 1.1916e+04} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: N2H2 + NH <=> NNH + NH2 # Reaction 117 + rate-constant: {A: 2.4e+06, b: 2.0, Ea: -1191.6} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: N2H2 + NH2 <=> NNH + NH3 # Reaction 118 + rate-constant: {A: 0.088, b: 4.05, Ea: -1610.0} + note: '\AUTHOR: AS !\REF: Linder, D.P.; Duan, X.; Page, M. J. Chem. + Phys. 104 6298 - 6306 (1996) !\COMMENT:' +- equation: N2H2 <=> H2NN # Reaction 119 + type: pressure-dependent-Arrhenius + rate-constants: + - {P: 0.1 atm, A: 9.2e+38, b: -9.01, Ea: 6.77269e+04} + - {P: 1.0 atm, A: 2.0e+41, b: -9.38, Ea: 6.84522e+04} + - {P: 10.0 atm, A: 1.3e+45, b: -10.13, Ea: 7.07571e+04} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: H2NN <=> NNH + H # Reaction 120 + duplicate: true + type: pressure-dependent-Arrhenius + rate-constants: + - {P: 0.1 atm, A: 5.9e+32, b: -6.99, Ea: 5.17912e+04} + - {P: 1.0 atm, A: 9.6e+35, b: -7.57, Ea: 5.48412e+04} + - {P: 10.0 atm, A: 5.0e+36, b: -7.43, Ea: 5.72951e+04} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: H2NN <=> NNH + H # Reaction 121 + duplicate: true + type: pressure-dependent-Arrhenius + rate-constants: + - {P: 0.1 atm, A: 7.2e+28, b: -7.77, Ea: 5.07579e+04} + - {P: 1.0 atm, A: 3.2e+31, b: -6.22, Ea: 5.23177e+04} + - {P: 10.0 atm, A: 5.1e+33, b: -6.52, Ea: 5.42153e+04} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: H2NN + O2 <=> NH2 + NO2 # Reaction 122 + rate-constant: {A: 1.5e+12, b: 0.0, Ea: 5961.0} + note: |2- + H2NN + \AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. !\COMMENT: +- equation: H2NN + H <=> N2H2 + H # Reaction 123 + rate-constant: {A: 1.8e+10, b: 0.97, Ea: 4470.8} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: H2NN + H <=> NNH + H2 # Reaction 124 + rate-constant: {A: 4.8e+08, b: 1.5, Ea: -894.2} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: H2NN + O <=> NH2 + NO # Reaction 125 + rate-constant: {A: 3.2e+09, b: 1.03, Ea: 2702.3} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: H2NN + O <=> OH + NNH # Reaction 126 + rate-constant: {A: 3.3e+08, b: 1.5, Ea: -894.2} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: H2NN + OH <=> NNH + H2O # Reaction 127 + rate-constant: {A: 2.4e+06, b: 2.0, Ea: -1192.2} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: H2NN + NH2 <=> NH3 + NNH # Reaction 128 + rate-constant: {A: 1.8e+06, b: 1.94, Ea: -1152.5} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: H2NN + HO2 <=> NNH + H2O2 # Reaction 129 + rate-constant: {A: 2.9e+04, b: 2.69, Ea: -1599.5} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: NNH <=> N2 + H # Reaction 130 + rate-constant: {A: 1.0e+09, b: 0.0, Ea: 0.0} + note: '\AUTHOR: AS !\REF: SJ Klippenstein LB Harding P Glarborg JA Miller + CF 158 (2011) 774-789. !\COMMENT:' +- equation: NNH + H <=> N2 + H2 # Reaction 131 + rate-constant: {A: 2.4e+08, b: 1.5, Ea: -893.7} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: NNH + O <=> N2O + H # Reaction 132 + rate-constant: {A: 1.9e+14, b: -0.274, Ea: -22.0} + note: '\AUTHOR: AS !\REF: SJ Klippenstein LB Harding P Glarborg JA Miller + CF 158 (2011) 774-789. !\COMMENT:' +- equation: NNH + O <=> NH + NO # Reaction 133 + rate-constant: {A: 5.2e+11, b: 0.388, Ea: -409.0} + note: '\AUTHOR: AS !\REF: SJ Klippenstein LB Harding P Glarborg JA Miller + CF 158 (2011) 774-789. !\COMMENT:' +- equation: NNH + O <=> N2 + OH # Reaction 134 + rate-constant: {A: 1.2e+13, b: 0.145, Ea: -217.0} + note: '\AUTHOR: AS !\REF: SJ Klippenstein LB Harding P Glarborg JA Miller + CF 158 (2011) 774-789. !\COMMENT:' +- equation: NNH + OH <=> N2 + H2O # Reaction 135 + rate-constant: {A: 5.0e+13, b: 0.0, Ea: 0.0} + note: '\AUTHOR: AS !\REF: SJ Klippenstein LB Harding P Glarborg JA Miller + CF 158 (2011) 774-789. !\COMMENT: Ref 92' +- equation: NNH + O2 <=> N2 + HO2 # Reaction 136 + rate-constant: {A: 5.6e+14, b: -0.385, Ea: -13.0} + note: '\AUTHOR: AS !\REF: SJ Klippenstein LB Harding P Glarborg JA Miller + CF 158 (2011) 774-789. !\COMMENT:' +- equation: NNH + NH2 <=> N2 + NH3 # Reaction 137 + rate-constant: {A: 9.2e+05, b: 1.94, Ea: -1151.9} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: NNH + HO2 <=> N2 + H2O2 # Reaction 138 + rate-constant: {A: 1.4e+04, b: 2.69, Ea: -1599.5} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: NNH + NO <=> N2 + HNO # Reaction 139 + rate-constant: {A: 5.0e+13, b: 0.0, Ea: 0.0} + note: '\AUTHOR: AS !\REF: Skreiberg, O., Kilpinen, P., & Glarborg, P. + (2004). Combustion and Flame, 136(4), 501-518. !\COMMENT:' +- equation: NO + HO2 <=> NO2 + OH # Reaction 140 + rate-constant: {A: 2.11e+12, b: 0.0, Ea: -480.0} + note: '\AUTHOR: AS !\REF: Howard, C.J. J. Am. Chem. Soc. 102 (1980) !\COMMENT:' +- equation: NO + O (+M) <=> NO2 (+M) # Reaction 141 + type: falloff + low-P-rate-constant: {A: 4.72e+24, b: -2.87, Ea: 1550.0} + high-P-rate-constant: {A: 1.3e+15, b: -0.75, Ea: 0.0} + Troe: {A: 0.75, T3: 1000.0, T1: 1.0e+05, T2: 1.0e+30} + efficiencies: {N2: 1.7, O2: 1.5, H2O: 10.0} + note: '\AUTHOR: AS !\REF: Allen MT Yetter RA Dryer FL Combust Flame 109 + 449 (1997) !\COMMENT:' +- equation: OH + NO <=> HONO # Reaction 142 + type: pressure-dependent-Arrhenius + rate-constants: + - {P: 0.01 atm, A: 5.02e+21, b: -4.24, Ea: 898.9} + - {P: 0.1 atm, A: 5.31e+22, b: -4.24, Ea: 1184.0} + - {P: 0.316 atm, A: 1.38e+23, b: -4.22, Ea: 1376.0} + - {P: 1.0 atm, A: 3.09e+23, b: -4.17, Ea: 1621.0} + - {P: 3.16 atm, A: 5.45e+23, b: -4.09, Ea: 1911.0} + - {P: 10.0 atm, A: 6.35e+23, b: -3.97, Ea: 2222.0} + - {P: 31.6 atm, A: 3.68e+23, b: -3.75, Ea: 2501.0} + - {P: 100.0 atm, A: 7.29e+22, b: -3.41, Ea: 2660.0} + note: |2- + N2 + \AUTHOR: AS !\REF: Chen, X., Fuller, M. E., & Goldsmith, C. F. Reac Chem Eng, 4(2), 323-333 (2019). !\COMMENT: +- equation: HNO <=> H + NO # Reaction 143 + type: pressure-dependent-Arrhenius + rate-constants: + - {P: 0.1 atm, A: 2.0121e+19, b: -3.021, Ea: 4.7792e+04} + - {P: 1.0 atm, A: 1.8259e+20, b: -3.008, Ea: 4.788e+04} + - {P: 10.0 atm, A: 1.2762e+21, b: -2.959, Ea: 4.81e+04} + - {P: 100.0 atm, A: 5.6445e+21, b: -2.855, Ea: 4.8459e+04} + - {P: 1000.0 atm, A: 9.7111e+21, b: -2.642, Ea: 4.894e+04} + note: '\AUTHOR: AS !\REF: Stagni, A. et al. React. Chem. Eng. (submitted) + (2020). !\COMMENT: T = 500-2500 K fitted' +- equation: HNO + H <=> NO + H2 # Reaction 144 + rate-constant: {A: 9.68e+11, b: 0.62, Ea: 360.0} + note: '\AUTHOR: AS !\REF: Nguyen, H.MT. et al. Chem. Phys. Lett. 388 94-99 + (2004) !\COMMENT: CVT method' +- equation: HNO + O <=> NO + OH # Reaction 145 + rate-constant: {A: 2.29e+13, b: 0.0, Ea: 0.0} + note: '\AUTHOR: AS !\REF: Inomata, S.; Washida, N. J. Phys. Chem. A 103 + 5023 - 5031 (1999) !\COMMENT:' +- equation: HNO + OH <=> H + HONO # Reaction 146 + type: pressure-dependent-Arrhenius + rate-constants: + - {P: 0.01 atm, A: 1060.0, b: 2.76, Ea: 4439.0} + - {P: 0.1 atm, A: 1090.0, b: 2.75, Ea: 4450.0} + - {P: 0.316 atm, A: 1180.0, b: 2.74, Ea: 4476.0} + - {P: 1.0 atm, A: 1480.0, b: 2.72, Ea: 4554.0} + - {P: 3.16 atm, A: 2710.0, b: 2.64, Ea: 4768.0} + - {P: 10.0 atm, A: 9670.0, b: 2.49, Ea: 5253.0} + - {P: 31.6 atm, A: 5.31e+04, b: 2.29, Ea: 6063.0} + - {P: 100.0 atm, A: 1.03e+05, b: 2.24, Ea: 6951.0} + note: '\AUTHOR: AS !\REF: Chen, X., Fuller, M. E., & Goldsmith, C. F. + Reac Chem Eng, 4(2), 323-333 (2019). !\COMMENT:' +- equation: HNO + OH <=> NO + H2O # Reaction 147 + type: pressure-dependent-Arrhenius + rate-constants: + - {P: 0.01 atm, A: 5.82e+10, b: 0.4, Ea: 3762.0} + - {P: 0.1 atm, A: 5.85e+10, b: 0.4, Ea: 3763.0} + - {P: 0.316 atm, A: 5.92e+10, b: 0.4, Ea: 3764.0} + - {P: 1.0 atm, A: 6.3e+10, b: 0.39, Ea: 3782.0} + - {P: 3.16 atm, A: 9.53e+10, b: 0.34, Ea: 3931.0} + - {P: 10.0 atm, A: 2.6e+11, b: 0.23, Ea: 4413.0} + - {P: 31.6 atm, A: 3.83e+11, b: 0.2, Ea: 5099.0} + - {P: 100.0 atm, A: 4.18e+10, b: 0.51, Ea: 5532.0} + note: '\AUTHOR: AS !\REF: Chen, X., Fuller, M. E., & Goldsmith, C. F. + Reac Chem Eng, 4(2), 323-333 (2019). !\COMMENT:' +- equation: HNO + O2 <=> NO + HO2 # Reaction 148 + rate-constant: {A: 2.0e+13, b: 0.0, Ea: 1.4896e+04} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: HNO + NH2 <=> NO + NH3 # Reaction 149 + rate-constant: {A: 3.67e+07, b: 1.63, Ea: -1250.0} + note: '\AUTHOR: AS !\REF: Mebel, A.M. et al. J. Phys. Chem. 100 7517 - + 7525 (1996) !\COMMENT:' +- equation: HNO + NO <=> N2O + OH # Reaction 150 + rate-constant: {A: 8.51e+12, b: 0.0, Ea: 2.961e+04} + note: '\AUTHOR: AS !\REF: Diau, E.W.; Halbgewachs, M.J.; Smith, A.R.; + Lin, M.C. Int. J. Chem. Kinet. 27 867-881 (1995) !\COMMENT:' +- equation: HNO + NO2 <=> HONO + NO # Reaction 151 + rate-constant: {A: 4.42e+04, b: 2.64, Ea: 4041.6} + note: '\AUTHOR: AS !\REF: Mebel, A.M.; Lin, M.C.; Morokuma, K. Int. J. + Chem. Kinet. 30 729-736 (1998) !\COMMENT:' +- equation: HNO + NO2 <=> HNO2 + NO # Reaction 152 + rate-constant: {A: 6.03e+11, b: 0.0, Ea: 1990.0} + note: '\AUTHOR: AS !\REF: Tsang, W.; Herron, J.T. J. Phys. Chem. Ref. + Data 20 609-663 (1991) !\COMMENT:' +- equation: HNO + HNO <=> N2O + H2O # Reaction 153 + rate-constant: {A: 8.43e+08, b: 0.0, Ea: 3100.0} + note: '\AUTHOR: AS !\REF: Tsang, W.; Herron, J.T. J. Phys. Chem. Ref. + Data 20 609-663 (1991) !\COMMENT:' +- equation: HNO + HO2 <=> HNO2 + OH # Reaction 154 + rate-constant: {A: 2000.0, b: 2.36, Ea: 8980.0} + note: '\AUTHOR: AS !\REF: Mousavipour, S. H., & Asemani, S. S. J Phys + Chem A, 119(22), 5553-5565 (2015). !\COMMENT:' +- equation: H + HONO <=> H2 + NO2 # Reaction 155 + rate-constant: {A: 1890.0, b: 2.83, Ea: 1422.7} + note: '\AUTHOR: AS !\REF: Chen, X., Fuller, M. E., & Goldsmith, C. F. + Reac Chem Eng, 4(2), 323-333 (2019). !\COMMENT:' +- equation: H + HNO2 <=> H2 + NO2 # Reaction 156 + rate-constant: {A: 2.33e+04, b: 2.77, Ea: -2021.9} + note: '\AUTHOR: AS !\REF: Chen, X., Fuller, M. E., & Goldsmith, C. F. + Reac Chem Eng, 4(2), 323-333 (2019). !\COMMENT:' +- equation: H + HONO <=> NO + H2O # Reaction 157 + type: pressure-dependent-Arrhenius + rate-constants: + - {P: 0.01 atm, A: 3.91e+09, b: 0.99, Ea: 4049.0} + - {P: 0.1 atm, A: 3.93e+09, b: 0.99, Ea: 4049.0} + - {P: 0.316 atm, A: 3.97e+09, b: 0.99, Ea: 4051.0} + - {P: 1.0 atm, A: 4.3e+09, b: 0.98, Ea: 4070.0} + - {P: 3.16 atm, A: 7.04e+09, b: 0.92, Ea: 4225.0} + - {P: 10.0 atm, A: 2.6e+10, b: 0.76, Ea: 4736.0} + - {P: 31.6 atm, A: 7.91e+10, b: 0.64, Ea: 5519.0} + - {P: 100.0 atm, A: 2.79e+10, b: 0.8, Ea: 6146.0} + note: '\AUTHOR: AS !\REF: Chen, X., Fuller, M. E., & Goldsmith, C. F. + Reac Chem Eng, 4(2), 323-333 (2019). !\COMMENT:' +- equation: HONO + O <=> NO2 + OH # Reaction 158 + rate-constant: {A: 1.21e+13, b: 0.0, Ea: 5960.0} + note: '\AUTHOR: AS !\REF: Tsang, W.; Herron, J.T. J. Phys. Chem. Ref. + Data 20 609-663 (1991) !\COMMENT:' +- equation: HONO + OH <=> NO2 + H2O # Reaction 159 + rate-constant: {A: 1.7e+12, b: 0.0, Ea: -520.0} + note: '\AUTHOR: AS !\REF: Burkholder JB Mellouki A Talukdar R Ravishankara + AR IJCK 24:711 1992 !\COMMENT:' +- equation: HONO + NH <=> NH2 + NO2 # Reaction 160 + rate-constant: {A: 1.0e+13, b: 0.0, Ea: 0.0} + note: '\AUTHOR: AS !\REF: Park, J., & Lin, M. C. (1997). The Journal of + Physical Chemistry A, 101(14), 2643-2647 !\COMMENT:' +- equation: HONO + NH2 <=> NH3 + NO2 # Reaction 161 + rate-constant: {A: 317.0, b: 2.83, Ea: -3570.0} + note: '\AUTHOR: AS !\REF: S. Xu, M.C. Lin, Int J Chem Kinet 41: 667-677, + 2009 !\COMMENT:' +- equation: HONO + HONO => NO + NO2 + H2O # Reaction 162 + rate-constant: {A: 0.349, b: 3.64, Ea: 1.21386e+04} + note: '\AUTHOR: AS !\REF: Mebel, A.M.; Lin, M.C.; Melius, C.F. J. Phys. + Chem. A 102 1803-1807 (1998) !\COMMENT:' +- equation: H2NO <=> HNOH # Reaction 163 + type: pressure-dependent-Arrhenius + rate-constants: + - {P: 0.1 atm, A: 8.2e+25, b: -4.94, Ea: 4.37935e+04} + - {P: 1.0 atm, A: 1.3e+27, b: -4.99, Ea: 4.39822e+04} + - {P: 10.0 atm, A: 2.6e+28, b: -5.06, Ea: 4.47671e+04} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: H2NO + M <=> HNO + H + M # Reaction 164 + type: three-body + rate-constant: {A: 2.8e+24, b: -2.83, Ea: 6.49749e+04} + efficiencies: {H2O: 10.0} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: H2NO + H <=> HNO + H2 # Reaction 165 + rate-constant: {A: 4.8e+08, b: 1.5, Ea: 1559.8} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: H2NO + H <=> NH2 + OH # Reaction 166 + rate-constant: {A: 4.0e+13, b: 0.0, Ea: 0.0} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: H2NO + O <=> HNO + OH # Reaction 167 + rate-constant: {A: 3.3e+08, b: 1.5, Ea: 486.8} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: H2NO + OH <=> HNO + H2O # Reaction 168 + rate-constant: {A: 2.4e+06, b: 2.0, Ea: 1192.2} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: H2NO + NO <=> HNO + HNO # Reaction 169 + rate-constant: {A: 2.0e+04, b: 2.0, Ea: 1.3e+04} + note: '\AUTHOR: AS !\REF: A El Bakali L Pillier P Desgroux B Lefort L + Gasnot JF Pauwels I Da Costa Fuel 85 896-909 (2006) !\COMMENT:' +- equation: H2NO + NO2 <=> HONO + HNO # Reaction 170 + rate-constant: {A: 6.0e+11, b: 0.0, Ea: 2000.0} + note: '\AUTHOR: AS !\REF: Glarborg, P., Kristensen, P. G., et al. Energy + & Fuels, 14(4), 828-838 (2000) !\COMMENT:' +- equation: H2NO + NH2 <=> HNO + NH3 # Reaction 171 + rate-constant: {A: 1.8e+06, b: 1.94, Ea: -580.0} + note: '\AUTHOR: AS !\REF: Dean AM Bozzelli JW (Gardiner WC) Gas Phase + Combustion Chemistry, Springer 2000. !\COMMENT:' +- equation: H2NO + O2 <=> HNO + HO2 # Reaction 172 + rate-constant: {A: 230.0, b: 2.994, Ea: 1.65e+04} + note: '\AUTHOR: AS !\REF: Glarborg, P., Miller, J. A., Ruscic, B., & Klippenstein, + S. J. (2018). Progr Energy Combust Sci, 67, 31-68 !\COMMENT: Glarborg + Eact = 16500 cal/mol - Original Eact is 18900' +- equation: H2NO + HO2 <=> HNO + H2O2 # Reaction 173 + rate-constant: {A: 3.36e+05, b: 2.0, Ea: -1434.0} + note: '\AUTHOR: AS !\REF: Estimated via rate rules from O2 abstraction + on H2NO !\COMMENT: Polimi recalculated' +- equation: NO3 + H <=> NO2 + OH # Reaction 174 + rate-constant: {A: 6.61e+13, b: 0.0, Ea: 0.0} + note: |2- + NO3 + \AUTHOR: AS !\REF: He, Y.; Liu, X.; Lin, M.C.; Melius, C.F. Int. J. Chem. Kinet. 25 845 - 863 (1993) !\COMMENT: T = 623 - 773 K +- equation: NO3 + O <=> NO2 + O2 # Reaction 175 + rate-constant: {A: 1.024e+13, b: 0.0, Ea: 0.0} + note: '\AUTHOR: AS !\REF: Atkinson, R.; Baulch, D.L.; et al. Atmos. Chem. + Phys. 4 1461 - 1738 (2004) !\COMMENT:' +- equation: NO3 + OH <=> NO2 + HO2 # Reaction 176 + rate-constant: {A: 1.4e+13, b: 0.0, Ea: 0.0} + note: '\AUTHOR: AS !\REF: He, Y.; Liu, X.; Lin, M.C.; Melius, C.F. Int. + J. Chem. Kinet. 25 845 - 863 (1993) !\COMMENT: T = 623 - 773 K' +- equation: NO3 + HO2 => NO2 + O2 + OH # Reaction 177 + rate-constant: {A: 1.51e+12, b: 0.0, Ea: 0.0} + note: '\AUTHOR: AS !\REF: Becker, E.; Rahman, M.M.; Schindler, R.N. Ber. + Bunsenges. Phys. Chem. 96 776 - 783 (1992) !\COMMENT:' +- equation: NO3 + NO2 => NO + NO2 + O2 # Reaction 178 + rate-constant: {A: 5.73e+10, b: 0.0, Ea: 2800.0} + note: '\AUTHOR: AS !\REF: Cantrell, C.A.; Davidson, J.A.; McDaniel, A.H.; + Shetter, R.E.; Calvert, J.G.; J. Chem. Phys. 88 (1988) !\COMMENT: T + = 298 - 396 K' +- equation: NO3 <=> NO + O2 # Reaction 179 + rate-constant: {A: 2.5e+06, b: 0.0, Ea: 1.212e+04} + note: '\AUTHOR: AS !\REF: Johnston, H.S.; Cantrell, C.A.; Calvert, J.G. + J. Geophys. Res. 91 (1986) !\COMMENT: T = 298 - 934 K' +- equation: NO3 + NO3 => NO2 + NO2 + O2 # Reaction 180 + rate-constant: {A: 5.12e+11, b: 0.0, Ea: 4870.0} + note: '\AUTHOR: AS !\REF: Johnston, H.S.; Cantrell, C.A.; Calvert, J.G. + J. Geophys. Res. 91 (1986) !\COMMENT: T = 298 - 329 K' +- equation: H + NO2 <=> OH + NO # Reaction 181 + rate-constant: {A: 8.85e+13, b: 0.0, Ea: 0.0} + note: |2- + NO2 + \AUTHOR: AS !\REF: Su, M.-C. et al. J. Phys. Chem. A 106 8261-8270 (2002) !\COMMENT: +- equation: NO2 + O <=> NO + O2 # Reaction 182 + rate-constant: {A: 3.92e+12, b: 0.0, Ea: -238.0} + note: '\AUTHOR: AS !\REF: Tsang, W.; Herron, J.T. J. Phys. Chem. Ref. + Data 20 609-663 (1991) !\COMMENT:' +- equation: NO2 + O (+M) <=> NO3 (+M) # Reaction 183 + type: falloff + low-P-rate-constant: {A: 2.5e+20, b: -1.5, Ea: 0.0} + high-P-rate-constant: {A: 3.5e+12, b: 0.24, Ea: 0.0} + Troe: {A: 0.71, T3: 1.0e-30, T1: 1700.0, T2: 1.0e+30} + note: '\AUTHOR: AS !\REF: Hahn, J.; Luther, K.; Troe, J. Phys. Chem. Chem. + Phys. 5098 - 5104 (2000) !\COMMENT:' +- equation: NO2 + HO2 <=> HONO + O2 # Reaction 184 + rate-constant: {A: 1.9, b: 3.32, Ea: 3044.0} + note: '\AUTHOR: AS !\REF: CL Rasmussen J Hansen P Marshall P Glarborg + IJCK 40, 454-480 (2008) !\COMMENT:' +- equation: NO2 + HO2 <=> HNO2 + O2 # Reaction 185 + rate-constant: {A: 19.0, b: 3.26, Ea: 4983.0} + note: '\AUTHOR: AS !\REF: CL Rasmussen J Hansen P Marshall P Glarborg + IJCK 40, 454-480 (2008) !\COMMENT:' +- equation: NO2 + NO2 => NO + NO + O2 # Reaction 186 + rate-constant: {A: 1.63e+12, b: 0.0, Ea: 2.603e+04} + note: '\AUTHOR: AS !\REF: Tsang, W.; Herron, J.T. J. Phys. Chem. Ref. + Data 20 609-663 (1991) !\COMMENT:' +- equation: NO2 + NO2 <=> NO3 + NO # Reaction 187 + rate-constant: {A: 1.0e+13, b: 0.0, Ea: 2.58e+04} + note: '\AUTHOR: AS !\REF: Rohrig, M.; Petersen, E.L.; Davidson, D.F.; + Hanson, R.K. !\COMMENT:' +- equation: N2O (+M) <=> N2 + O (+M) # Reaction 188 + type: falloff + low-P-rate-constant: {A: 6.02e+14, b: 0.0, Ea: 5.7444e+04} + high-P-rate-constant: {A: 9.9e+10, b: 0.0, Ea: 5.7901e+04} + efficiencies: {N2: 1.7, O2: 1.4, H2O: 12.0} + note: '\AUTHOR: AS !\REF: Baulch, D. L., Bowman, C. T., et al. J Phys + Chem Ref Data, 34(3), 757-1397 (2005). !\COMMENT:' +- equation: N2O + H <=> N2 + OH # Reaction 189 + duplicate: true + rate-constant: {A: 2.53e+10, b: 0.0, Ea: 4550.0} + note: '\AUTHOR: AS !\REF: Powell, O.A., et al. Combust Sci Technology, + 182(3), 252-283. (2010) !\COMMENT: Modified Baulch rate' +- equation: N2O + H <=> N2 + OH # Reaction 190 + duplicate: true + rate-constant: {A: 5.0e+14, b: 0.0, Ea: 1.81e+04} + note: '\AUTHOR: AS !\REF: Powell, O.A., et al. Combust Sci Technology, + 182(3), 252-283. (2010) !\COMMENT: Modified Baulch rate' +- equation: N2O + O <=> NO + NO # Reaction 191 + rate-constant: {A: 6.62e+13, b: 0.0, Ea: 2.663e+04} + note: '\AUTHOR: AS !\REF: Tsang, W.; Herron, J.T. J. Phys. Chem. Ref. + Data 20 609-663 (1991) !\COMMENT:' +- equation: N2O + O <=> N2 + O2 # Reaction 192 + rate-constant: {A: 1.02e+14, b: 0.0, Ea: 2.802e+04} + note: '\AUTHOR: AS !\REF: Tsang, W.; Herron, J.T. J. Phys. Chem. Ref. + Data 20 609-663 (1991) !\COMMENT:' +- equation: N2O + OH <=> N2 + HO2 # Reaction 193 + rate-constant: {A: 0.01, b: 4.72, Ea: 3.656e+04} + note: '\AUTHOR: AS !\REF: Mebel, A.M.; Lin, M.C.; Morokuma, K.; Melius, + C.F. Int. J. Chem. Kinet. 28 693-703 (1996) !\COMMENT:' +- equation: N2O + NO <=> N2 + NO2 # Reaction 194 + rate-constant: {A: 5.25e+05, b: 2.23, Ea: 4.63e+04} + note: '\AUTHOR: AS !\REF: Mebel, A.M.; Lin, M.C.; Morokuma, K.; Melius, + C.F. Int. J. Chem. Kinet. 28 693-703 (1996) !\COMMENT:' +- equation: HNO2 + O <=> NO2 + OH # Reaction 195 + rate-constant: {A: 1.7e+08, b: 1.5, Ea: 2365.4} + note: '\AUTHOR: AS !\REF: Dean, A. M., J. W. Bozzelli, and W. C. Gardiner. + WC Gardiner, Jr., Ed (2000). !\COMMENT:' +- equation: HNO2 + OH <=> NO2 + H2O # Reaction 196 + rate-constant: {A: 1.2e+06, b: 2.0, Ea: -794.8} + note: '\AUTHOR: AS !\REF: Dean, A. M., J. W. Bozzelli, and W. C. Gardiner. + WC Gardiner, Jr., Ed (2000). !\COMMENT:' +- equation: HNO2 <=> HONO # Reaction 197 + type: pressure-dependent-Arrhenius + rate-constants: + - {P: 0.01 atm, A: 3.26e+34, b: -7.97, Ea: 4.549e+04} + - {P: 0.1 atm, A: 2.77e+33, b: -7.58, Ea: 4.525e+04} + - {P: 0.316 atm, A: 1.93e+32, b: -7.18, Ea: 4.494e+04} + - {P: 1.0 atm, A: 1.56e+30, b: -6.47, Ea: 4.436e+04} + - {P: 3.16 atm, A: 2.17e+27, b: -5.49, Ea: 4.367e+04} + - {P: 10.0 atm, A: 4.68e+24, b: -4.52, Ea: 4.332e+04} + - {P: 31.6 atm, A: 1.14e+23, b: -3.81, Ea: 4.364e+04} + - {P: 100.0 atm, A: 2.03e+22, b: -3.35, Ea: 4.443e+04} + note: '\AUTHOR: AS !\REF: Chen, X., Fuller, M. E., & Goldsmith, C. F. + Reac Chem Eng, 4(2), 323-333 (2019). !\COMMENT:' +- equation: HNO2 + NH2 <=> NH3 + NO2 # Reaction 198 + rate-constant: {A: 2.8e+10, b: 0.0, Ea: -5760.0} + note: '\AUTHOR: AS !\REF: Thaxton, A.G.; Hsu, C.C.; Lin, M.C. Int. J. + Chem. Kinet. 29 245-251 (1997) !\COMMENT:' +- equation: H + HNO2 <=> NO + H2O # Reaction 199 + type: pressure-dependent-Arrhenius + rate-constants: + - {P: 0.01 atm, A: 3.39e+09, b: 1.07, Ea: 5568.0} + - {P: 0.1 atm, A: 3.39e+09, b: 1.07, Ea: 5567.0} + - {P: 0.316 atm, A: 3.39e+09, b: 1.07, Ea: 5567.0} + - {P: 1.0 atm, A: 3.38e+09, b: 1.07, Ea: 5565.0} + - {P: 3.16 atm, A: 3.38e+09, b: 1.07, Ea: 5560.0} + - {P: 10.0 atm, A: 3.4e+09, b: 1.07, Ea: 5546.0} + - {P: 31.6 atm, A: 4.32e+09, b: 1.04, Ea: 5591.0} + - {P: 100.0 atm, A: 1.27e+10, b: 0.91, Ea: 5968.0} + note: '\AUTHOR: AS !\REF: Chen, X., Fuller, M. E., & Goldsmith, C. F. + Reac Chem Eng, 4(2), 323-333 (2019). !\COMMENT:' +- equation: H + HNO2 <=> HNO + OH # Reaction 200 + type: pressure-dependent-Arrhenius + rate-constants: + - {P: 0.01 atm, A: 3.61e+07, b: 1.78, Ea: 5565.0} + - {P: 0.1 atm, A: 3.61e+07, b: 1.78, Ea: 5566.0} + - {P: 0.316 atm, A: 3.62e+07, b: 1.78, Ea: 5567.0} + - {P: 1.0 atm, A: 3.65e+07, b: 1.78, Ea: 5570.0} + - {P: 3.16 atm, A: 3.74e+07, b: 1.77, Ea: 5580.0} + - {P: 10.0 atm, A: 4.14e+07, b: 1.76, Ea: 5617.0} + - {P: 31.6 atm, A: 6.23e+07, b: 1.71, Ea: 5770.0} + - {P: 100.0 atm, A: 1.81e+08, b: 1.59, Ea: 6233.0} + note: '\AUTHOR: AS !\REF: Chen, X., Fuller, M. E., & Goldsmith, C. F. + Reac Chem Eng, 4(2), 323-333 (2019). !\COMMENT:' +- equation: OH + NO <=> HNO2 # Reaction 201 + type: pressure-dependent-Arrhenius + rate-constants: + - {P: 0.01 atm, A: 3.16e+18, b: -3.74, Ea: 1405.0} + - {P: 0.1 atm, A: 3.03e+18, b: -3.43, Ea: 2618.0} + - {P: 0.316 atm, A: 2.23e+18, b: -3.24, Ea: 3248.0} + - {P: 1.0 atm, A: 1.43e+18, b: -3.03, Ea: 3899.0} + - {P: 3.16 atm, A: 6.91e+17, b: -2.79, Ea: 4535.0} + - {P: 10.0 atm, A: 2.04e+17, b: -2.49, Ea: 5125.0} + - {P: 31.6 atm, A: 3.07e+16, b: -2.12, Ea: 5648.0} + - {P: 100.0 atm, A: 1.95e+15, b: -1.64, Ea: 6099.0} + note: '\AUTHOR: AS !\REF: Chen, X., Fuller, M. E., & Goldsmith, C. F. + Reac Chem Eng, 4(2), 323-333 (2019). !\COMMENT:' +- equation: OH + NO2 (+M) <=> HONO2 (+M) # Reaction 202 + type: falloff + low-P-rate-constant: {A: 2.938e+25, b: -3.0, Ea: 0.0} + high-P-rate-constant: {A: 3.0e+13, b: 0.0, Ea: 0.0} + Troe: {A: 0.4, T3: 1.0e-30, T1: 1.0e+30, T2: 1.0e+30} + note: '\AUTHOR: AS !\REF: Troe, J. Int Journ Chem Kinet, 33(12), 878-889 + (2001). !\COMMENT:' +- equation: HONO2 + OH <=> NO3 + H2O # Reaction 203 + rate-constant: {A: 9.04e+09, b: 0.0, Ea: -1240.0} + note: |- + \AUTHOR: AS !\REF: Fritz, B.; Lorenz, K.; et al. Phys. Chem. Behav. Atmos. Pollut. Proc. Eur. Symp. (1982) !\COMMENT: + \END_KINETICS_MODULE: \NOx_H2O2_HT + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + \END_KINETICS_INPUT + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ diff --git a/Mechanisms/POLIMI2020/therm.dat b/Mechanisms/POLIMI2020/therm.dat new file mode 100644 index 000000000..1a520932f --- /dev/null +++ b/Mechanisms/POLIMI2020/therm.dat @@ -0,0 +1,161 @@ +! +! A. Stagni, C. Cavallotti, S. Arunthanayothin, Y. Song, +! O. Herbinet, F. Battin-Leclerc, T. Faravelli +! "An experimental, theoretical and kinetic-modeling study of the gas-phase oxidation of ammonia" +! Reaction Chemistry and Engineering (submitted) (2020). +! +! Submitted to Reaction Chemistry and Engineering (November 2019) +! +! Thermodynamic properties +! +! CHEMKIN format +! +!VERSION: 17_03 +!AUTHORS: C1-C3 Burcat +!NOTE: SPECIES RE-ARRANGED AS THE SAME ORDER IN MECH +! +!VERSION: 17_05 +!Following species are updated from ATcT's Database: +! H H2 O O2 HE +! OH H2O N2 HO2 HCO +! H2O2 AR CO CO2 + +THERMO + 300. 1000. 4000. +! ---------ARAMCO 2.0 ------------------- +HE ATcT3EHe 1 0 0 0G 200.00 6000.00 1000.00 1 ! [Ghobad] He ATcT ver. 1.122, DHf298 = 0.000 \B1 0.000 kJ/mol - fit MAR17 + 2.49985609E+00 2.19365392E-07-1.07525085E-10 2.07198041E-14-1.39358612E-18 2 +-7.45309155E+02 9.29535014E-01 2.49976293E+00 1.01013432E-06-8.24578465E-10 3 +-6.85983306E-13 7.24751856E-16-7.45340917E+02 9.29800315E-01 0.00000000E+00 4 +AR ATcT3EAr 1 0 0 0G 200.00 6000.00 1000.00 1 ! [Ghobad] Ar ATcT ver. 1.122, DHf298 = 0.000 \B1 0.000 kJ/mol - fit MAR17 + 2.49989176E+00 1.56134837E-07-7.76108557E-11 1.52928085E-14-1.05304493E-18 2 +-7.45328403E+02 4.38029835E+00 2.49988611E+00 2.13037960E-07 8.97320772E-10 3 +-2.31395752E-12 1.30201393E-15-7.45354481E+02 4.38024367E+00 0.00000000E+00 4 +N2 ATcT3EN 2 0 0 0G 200.00 6000.00 1000.00 1 ! [Ghobad] N2 ATcT ver. 1.122, DHf298 = 0.000 \B1 0.000 kJ/mol - fit MAR17 + 2.93802970E+00 1.41838030E-03-5.03281045E-07 8.07555464E-11-4.76064275E-15 2 +-9.17180990E+02 5.95521985E+00 3.53603521E+00-1.58270944E-04-4.26984251E-07 3 + 2.37542590E-09-1.39708206E-12-1.04749645E+03 2.94603724E+00 0.00000000E+00 4 +O2 ATcT3EO 2 0 0 0G 200.00 6000.00 1000.00 1 ! [Ghobad] O2 ATcT ver. 1.122, DHf298 = 0.000 \B1 0.000 kJ/mol - fit MAR17 + 3.65980488E+00 6.59877372E-04-1.44158172E-07 2.14656037E-11-1.36503784E-15 2 +-1.21603048E+03 3.42074148E+00 3.78498258E+00-3.02002233E-03 9.92029171E-06 3 +-9.77840434E-09 3.28877702E-12-1.06413589E+03 3.64780709E+00 0.00000000E+00 4 +H2 ATcT3EH 2 0 0 0G 200.00 6000.00 1000.00 1 ! [Ghobad] H2 ATcT ver. 1.122, DHf298 = 0.000 \B1 0.000 kJ/mol - fit MAR17 + 2.90207649E+00 8.68992581E-04-1.65864430E-07 1.90851899E-11-9.31121789E-16 2 +-7.97948726E+02-8.45591320E-01 2.37694204E+00 7.73916922E-03-1.88735073E-05 3 + 1.95517114E-08-7.17095663E-12-9.21173081E+02 5.47184736E-01 0.00000000E+00 4 +H2O ATcT3EH 2O 1 0 0G 200.00 6000.00 1000.00 1 ! [Ghobad] H2O ATcT ver. 1.122, DHf298 = -241.833 \B1 0.027 kJ/mol - fit MAR17 + 2.73117512E+00 2.95136995E-03-8.35359785E-07 1.26088593E-10-8.40531676E-15 2 +-2.99169082E+04 6.55183000E+00 4.20147551E+00-2.05583546E-03 6.56547207E-06 3 +-5.52906960E-09 1.78282605E-12-3.02950066E+04-8.60610906E-01-2.90858262E+04 4 +H2O2 ATcT3EH 2O 2 0 0G 200.00 6000.00 1000.00 1 ! [Ghobad] H2O2 ATcT ver. 1.122, DHf298 = -135.457 \B1 0.064 kJ/mol - fit MAR17 + 4.54017480E+00 4.15970971E-03-1.30876777E-06 2.00823615E-10-1.15509243E-14 2 +-1.79514029E+04 8.55881745E-01 4.23854160E+00-2.49610911E-04 1.59857901E-05 3 +-2.06919945E-08 8.29766320E-12-1.76486003E+04 3.58850097E+00-1.62917334E+04 4 +O ATcT3EO 1 0 0 0G 200.00 6000.00 1000.00 1 ! [Ghobad] O ATcT ver. 1.122, DHf298 = 249.229 \B1 0.002 kJ/mol - fit MAR17 + 2.55160087E+00-3.83085457E-05 8.43197478E-10 4.01267136E-12-4.17476574E-16 2 + 2.92287628E+04 4.87617014E+00 3.15906526E+00-3.21509999E-03 6.49255543E-06 3 +-5.98755115E-09 2.06876117E-12 2.91298453E+04 2.09078344E+00 2.99753606E+04 4 +H ATcT3EH 1 0 0 0G 200.00 6000.00 1000.00 1 ! [Ghobad] H ATcT ver. 1.122, DHf298 = 217.998 \B1 0.000 kJ/mol - fit MAR17 + 2.49985211E+00 2.34582548E-07-1.16171641E-10 2.25708298E-14-1.52992005E-18 2 + 2.54738024E+04-4.45864645E-01 2.49975925E+00 6.73824499E-07 1.11807261E-09 3 +-3.70192126E-12 2.14233822E-15 2.54737665E+04-4.45574009E-01 2.62191345E+04 4 +OH ATcT3EH 1O 1 0 0G 200.00 6000.00 1000.00 1 ! [Ghobad] OH ATcT ver. 1.122, DHf298 = 37.490 \B1 0.027 kJ/mol - fit MAR17 + 2.84581721E+00 1.09723818E-03-2.89121101E-07 4.09099910E-11-2.31382258E-15 2 + 3.71706610E+03 5.80339915E+00 3.97585165E+00-2.28555291E-03 4.33442882E-06 3 +-3.59926640E-09 1.26706930E-12 3.39341137E+03-3.55397262E-02 4.50901087E+03 4 +HO2 ATcT3EH 1O 2 0 0G 200.00 6000.00 1000.00 1 ! [Ghobad] HO2 ATcT ver. 1.122, DHf298 = 12.26 \B1 0.16 kJ/mol - fit MAR17 + 4.10564010E+00 2.04046836E-03-3.65877562E-07 1.85973044E-11 4.98818315E-16 2 + 4.32898769E+01 3.30808126E+00 4.26251250E+00-4.45642032E-03 2.05164934E-05 3 +-2.35794011E-08 9.05614257E-12 2.62442356E+02 3.88223684E+00 1.47417835E+03 4 +!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +!NOx MODULE (from Burcat http://garfield.chem.elte.hu/Burcat/THERM.DAT) +!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +NO RUS 89N 1O 1 0 0G 200.000 6000.000 1000. 1 ! E. Goos, A. Burcat and B. Ruscic http://garfield.chem.elte.hu/Burcat/THERM.DAT + 3.26071234E+00 1.19101135E-03-4.29122646E-07 6.94481463E-11-4.03295681E-15 2 + 9.92143132E+03 6.36900518E+00 4.21859896E+00-4.63988124E-03 1.10443049E-05 3 +-9.34055507E-09 2.80554874E-12 9.84509964E+03 2.28061001E+00 1.09770882E+04 4 +N2O L 7/88N 2O 1 0 0G 200.000 6000.000 1000. 1 ! E. Goos, A. Burcat and B. Ruscic http://garfield.chem.elte.hu/Burcat/THERM.DAT + 0.48230729E+01 0.26270251E-02-0.95850872E-06 0.16000712E-09-0.97752302E-14 2 + 0.80734047E+04-0.22017208E+01 0.22571502E+01 0.11304728E-01-0.13671319E-04 3 + 0.96819803E-08-0.29307182E-11 0.87417746E+04 0.10757992E+02 0.98141682E+04 4 +NO2 L 7/88N 1O 2 0 0G 200.000 6000.000 1000. 1 ! E. Goos, A. Burcat and B. Ruscic http://garfield.chem.elte.hu/Burcat/THERM.DAT + 0.48847540E+01 0.21723955E-02-0.82806909E-06 0.15747510E-09-0.10510895E-13 2 + 0.23164982E+04-0.11741695E+00 0.39440312E+01-0.15854290E-02 0.16657812E-04 3 +-0.20475426E-07 0.78350564E-11 0.28966180E+04 0.63119919E+01 0.41124701E+04 4 +HNO ATcT/AH 1.N 1.O 1. 0.G 200.000 6000.000 1000. 1 ! E. Goos, A. Burcat and B. Ruscic http://garfield.chem.elte.hu/Burcat/THERM.DAT + 3.16598124E+00 2.99958892E-03-3.94376786E-07-3.85344089E-11 7.07602668E-15 2 + 1.17726311E+04 7.64511172E+00 4.53525574E+00-5.68543377E-03 1.85198540E-05 3 +-1.71881225E-08 5.55818157E-12 1.16183003E+04 1.74315886E+00 1.28500657E+04 4 +HNO2 ATcT3EH 1N 1O 2 0G 200.00 6000.00 1000.00 1 ! Glarborg, P. et al. Progr Energy Combust Sci, 67, 31-68. (2018) + 4.66358504E+00 4.89854351E-03-1.79694193E-06 2.94420361E-10-1.78235577E-14 2 +-7.25216334E+03-3.06053640E-02 4.03779347E+00-4.46123109E-03 3.19440815E-05 3 +-3.79359490E-08 1.44570885E-11-6.53088236E+03 5.90620097E+00-5.31122753E+03 4 +HONO ATcT3EH 1N 1O 2 0G 200.00 6000.00 1000.00 1 ! Glarborg, P. et al. Progr Energy Combust Sci, 67, 31-68. (2018) + 5.79144641E+00 3.64630732E-03-1.29112765E-06 2.06498233E-10-1.22138679E-14 2 +-1.15974343E+04-4.07145349E+00 3.16416438E+00 8.50517773E-03 5.48561573E-07 3 +-8.27656474E-09 4.39957151E-12-1.07744086E+04 1.00231941E+01-9.46242812E+03 4 +HONO2 T 8/03H 1.N 1.O 3. 0.G 200.000 6000.000 1000. 1 ! HNO3 in Burcat database http://garfield.chem.elte.hu/Burcat/THERM.DAT + 8.03098942E+00 4.46958589E-03-1.72459491E-06 2.91556153E-10-1.80102702E-14 2 +-1.93138183E+04-1.62616537E+01 1.69329154E+00 1.90167702E-02-8.25176697E-06 3 +-6.06113827E-09 4.65236978E-12-1.74198909E+04 1.71839838E+01-1.61524852E+04 4 +N2H2 2/13/19 N 2H 2 G 300.000 5000.000 1380.000 1 ! Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. + 4.14686796E+00 4.81612315E-03-1.62748817E-06 2.50556098E-10-1.44494188E-14 2 + 2.33444055E+04 5.34122740E-01 2.55589425E+00 6.54339081E-03-8.81947855E-07 3 +-1.15971304E-09 3.97442230E-13 2.41085081E+04 9.80504705E+00 4 +H2NN Isodiazene T 9/11N 2.H 2. 0. 0.G 200.000 6000.000 1000. 1 ! Is 'N2H2 Isodiazene' in Burcat database + 3.05903670E+00 6.18382347E-03-2.22171165E-06 3.58539206E-10-2.14532905E-14 2 + 3.48530149E+04 6.69893515E+00 4.53204001E+00-7.32418578E-03 3.00803713E-05 3 +-3.04000551E-08 1.04700639E-11 3.49580003E+04 1.51074195E+00 3.61943157E+04 4 +HNNO 5/30/18 THERM N 2.H 1.O 1 0.G 300.000 5000.000 1790.000 61 ! Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. + 2.15594002E+06-4.13111192E+03 2.65627771E+00-6.70395293E-04 5.57827338E-08 2 +-8.03468100E+08-1.18702032E+07-8.96779017E-01 3.69714359E-02-4.80099825E-05 3 + 2.62274393E-08-5.11382966E-12 2.68675048E+04 2.64521806E+01 4 +NH2NO 5/30/18 THERM N 2.H 2.O 1 0.G 300.000 5000.000 1371.000 61 ! Dean AM Bozzelli JW (Gardiner WC) Gas Phase Combustion Chemistry, Springer 2000. + 7.93898100E+00 5.21842622E-03-2.12493130E-06 3.53331059E-10-2.12447889E-14 2 + 5.42322972E+03-1.84299492E+01 1.85914077E+00 1.68525394E-02-9.37240888E-06 3 + 1.71380329E-09 4.84625807E-14 7.78108234E+03 1.51172833E+01 4 +HNOH trans & Equ T11/11H 2.N 1.O 1. 0.G 200.000 6000.000 1000. 1 ! E. Goos, A. Burcat and B. Ruscic http://garfield.chem.elte.hu/Burcat/THERM.DAT + 3.98321933E+00 4.88846374E-03-1.65086637E-06 2.55371446E-10-1.48308561E-14 2 + 1.05780106E+04 3.62582838E+00 3.95608248E+00-3.02611020E-03 2.56874396E-05 3 +-3.15645120E-08 1.24084574E-11 1.09199790E+04 5.55950983E+00 1.21354115E+04 4 +NH2OH ATcT/AN 1.H 3.O 1. 0.G 200.000 6000.000 1000. 1 ! E. Goos, A. Burcat and B. Ruscic http://garfield.chem.elte.hu/Burcat/THERM.DAT + 3.88112502E+00 8.15708448E-03-2.82615576E-06 4.37930933E-10-2.52724604E-14 2 +-6.86018419E+03 3.79156136E+00 3.21016092E+00 6.19671676E-03 1.10594948E-05 3 +-1.96668262E-08 8.82516590E-12-6.58148481E+03 7.93293571E+00-5.28593988E+03 4 +NH3 ATcT3EH 3N 1 0 0G 200.00 4000.00 1000.00 1 ! Glarborg, P. et al. Progr Energy Combust Sci, 67, 31-68. (2018) + 2.36074311E+00 6.31850146E-03-2.28966806E-06 4.11767411E-10-2.90836787E-14 2 +-6.41596473E+03 8.02154329E+00 4.14027871E+00-3.58489142E-03 1.89475904E-05 3 +-1.98833970E-08 7.15267961E-12-6.68545158E+03-1.66754883E-02-5.47888720E+03 4 +N2H4 HYDRAZINE L 5/90N 2H 4 0 0G 200.000 6000.000 1000. 1 ! E. Goos, A. Burcat and B. Ruscic http://garfield.chem.elte.hu/Burcat/THERM.DAT + 4.93957357E+00 8.75017187E-03-2.99399058E-06 4.67278418E-10-2.73068599E-14 2 + 9.28265548E+03-2.69439772E+00 3.83472149E+00-6.49129555E-04 3.76848463E-05 3 +-5.00709182E-08 2.03362064E-11 1.00893925E+04 5.75272030E+00 1.14474575E+04 4 +N L 6/88N 1 0 0 0G 200.000 6000.000 1000. 1 ! E. Goos, A. Burcat and B. Ruscic http://garfield.chem.elte.hu/Burcat/THERM.DAT + 0.24159429E+01 0.17489065E-03-0.11902369E-06 0.30226244E-10-0.20360983E-14 2 + 0.56133775E+05 0.46496095E+01 0.25000000E+01 0.00000000E+00 0.00000000E+00 3 + 0.00000000E+00 0.00000000E+00 0.56104638E+05 0.41939088E+01 0.56850013E+05 4 +NO3 ATcT/AN 1.O 3. 0. 0.G 200.000 6000.000 1000. 1 ! E. Goos, A. Burcat and B. Ruscic http://garfield.chem.elte.hu/Burcat/THERM.DAT + 7.48347702E+00 2.57772064E-03-1.00945831E-06 1.72314063E-10-1.07154008E-14 2 + 6.12990474E+03-1.41618136E+01 2.17359330E+00 1.04902685E-02 1.10472669E-05 3 +-2.81561867E-08 1.36583960E-11 7.81290905E+03 1.46022090E+01 8.97563416E+03 4 +NH ATcT/AN 1.H 1. 0. 0.G 200.000 6000.000 1000. 1 ! E. Goos, A. Burcat and B. Ruscic http://garfield.chem.elte.hu/Burcat/THERM.DAT + 2.78372644E+00 1.32985888E-03-4.24785573E-07 7.83494442E-11-5.50451310E-15 2 + 4.23461945E+04 5.74084863E+00 3.49295037E+00 3.11795720E-04-1.48906628E-06 3 + 2.48167402E-09-1.03570916E-12 4.21059722E+04 1.84834973E+00 4.31525130E+04 4 +NNH T 8/11N 2.H 1. 0. 0.G 200.000 6000.000 1000. 1 ! N2H in Burcat database http://garfield.chem.elte.hu/Burcat/THERM.DAT + 3.42744423E+00 3.23295234E-03-1.17296299E-06 1.90508356E-10-1.14491506E-14 2 + 2.87676026E+04 6.39209233E+00 4.25474632E+00-3.45098298E-03 1.37788699E-05 3 +-1.33263744E-08 4.41023397E-12 2.87932080E+04 3.28551762E+00 3.00058572E+04 4 +NH2 AMIDOGEN RAD IU3/03N 1.H 2. 0. 0.G 200.000 3000.000 1000. 1 ! E. Goos, A. Burcat and B. Ruscic http://garfield.chem.elte.hu/Burcat/THERM.DAT + 2.59263049E+00 3.47683597E-03-1.08271624E-06 1.49342558E-10-5.75241187E-15 2 + 2.15737320E+04 7.90565351E+00 4.19198016E+00-2.04602827E-03 6.67756134E-06 3 +-5.24907235E-09 1.55589948E-12 2.11863286E+04-9.04785244E-02 2.23945849E+04 4 +H2NO RADICAL T09/09N 1.H 2.O 1. 0.G 200.000 6000.000 1000. 1 ! Glarborg, P. et al. Progr Energy Combust Sci, 67, 31-68. (2018) + 3.75555914E+00 5.16219354E-03-1.76387387E-06 2.75052692E-10-1.60643143E-14 2 + 6.51826177E+03 4.30933053E+00 3.93201139E+00-1.64028165E-04 1.39161409E-05 3 +-1.62747853E-08 6.00352834E-12 6.71178975E+03 4.58837038E+00 7.97044877E+03 4 +N2H3 Rad. T 7/11N 2.H 3. 0. 0.G 200.000 6000.000 1000. 1 ! E. Goos, A. Burcat and B. Ruscic http://garfield.chem.elte.hu/Burcat/THERM.DAT + 4.04483566E+00 7.31130186E-03-2.47625799E-06 3.83733021E-10-2.23107573E-14 2 + 2.53241420E+04 2.88423392E+00 3.42125505E+00 1.34901590E-03 2.23459071E-05 3 +-2.99727732E-08 1.20978970E-11 2.58198956E+04 7.83176309E+00 2.70438066E+04 4 +END diff --git a/Mechanisms/POLIMI2020/tran.dat b/Mechanisms/POLIMI2020/tran.dat new file mode 100644 index 000000000..9d5be0c76 --- /dev/null +++ b/Mechanisms/POLIMI2020/tran.dat @@ -0,0 +1,51 @@ +! +! +! A. Stagni, C. Cavallotti, S. Arunthanayothin, Y. Song, +! O. Herbinet, F. Battin-Leclerc, T. Faravelli +! "An experimental, theoretical and kinetic-modeling study of the gas-phase oxidation of ammonia" +! Reaction Chemistry and Engineering (submitted) (2020). +! +! Submitted to Reaction Chemistry and Engineering (November 2019) +! +! Transport properties +! +! CHEMKIN format +! +!VERSION: 15_50_1112 +!AUTHORS: C3 +!NOTE: SPECIES RE-ARRANGED AS THE SAME ORDER IN MECH, ANALOGIES HAVE BEEN INDICATED BY CORRESPONDING SPECIES NAME IN COMMENTS. DATA MOSTLY FROM ARAMCO MECH 1.3 +AR 0 136.500 3.330 0.000 0.000 0.000 ! +N2 1 97.530 3.621 0.000 1.760 4.000 ! +HE 0 10.200 2.576 0.000 0.000 0.000 ! +H2 1 38.000 2.920 0.000 0.790 280.000 ! +H 0 145.000 2.050 0.000 0.000 0.000 ! +O2 1 107.400 3.458 0.000 1.600 3.800 ! +O 0 80.000 2.750 0.000 0.000 0.000 ! +H2O 2 572.400 2.605 1.844 0.000 4.000 ! +OH 1 80.000 2.750 0.000 0.000 0.000 ! +OHV 1 80.000 2.750 0.000 0.000 0.000 ! +H2O2 2 107.400 3.458 0.000 0.000 3.800 ! +HO2 2 107.400 3.458 0.000 0.000 1.000 ! +!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +!NOx MODULE +!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +NO 1 97.500 3.621 0.000 1.760 4.000 +N2O 1 232.400 3.828 0.000 0.000 1.000 +NO2 2 200.000 3.500 0.000 0.000 1.000 +HNO 2 116.700 3.492 0.000 0.000 1.000 +HNO2 2 200.000 3.500 0.000 0.000 1.000 +HONO 2 200.000 3.500 0.000 0.000 1.000 +HONO2 2 300.000 3.500 0.000 0.000 1.000 +N2H2 2 71.400 3.798 0.000 0.000 1.000 +NH3 2 481.000 2.920 1.470 0.000 10.000 +H2NN 2 71.400 3.798 0.000 0.000 1.000 ! = N2H2 +N2H4 2 205.000 4.230 0.000 4.260 1.500 +HNOH 2 116.700 3.492 0.000 0.000 1.000 ! JAM +NH2OH 2 116.700 3.492 0.000 0.000 1.000 ! = NHOH +N 0 71.400 3.298 0.000 0.000 0.000 +NO3 2 300.000 3.500 0.000 0.000 1.000 +NH 1 80.000 2.650 0.000 0.000 4.000 +NNH 2 71.400 3.798 0.000 0.000 1.000 +NH2 2 80.000 2.650 0.000 2.260 4.000 +H2NO 2 116.700 3.492 0.000 0.000 1.000 +N2H3 2 200.000 3.900 0.000 0.000 1.000 \ No newline at end of file